def createAsteriskConfig(self):
        needModule("res_crypto")
        needModule("chan_sip")

        self.dial = "SIP/${ARG1}@%s" % (self.name)

        # What to do with incoming calls
        self.createIncomingContext()

        c = AstConf("sip.conf")
        c.setSection("general")
        c.append("register=%s@%s/%s" % (self.name, self.host, self.name))

        if not c.hasSection(self.name):
            c.setSection(self.name)
            c.append("type=friend")
            c.append("user=%s" % self.name)
            c.append("host=%s" % self.host)
            c.append("context=in-%s" % self.name)
            c.append("canreinvite=no")
            c.append("dtmfmode=rfc2833")
            if self.nat:
                c.append("nat=yes")
            c.append("insecure=very")

        if panelutils.isConfigured() == 1 and self.panel:
            panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("chan_zap")

		c = AstConf("zaptel.conf")
		c.setSection("")
		c.destar_comment = False
		c.append("fxs%s=%s" % (self.signalling[4:], self.channels))
		c.append("")

		# Create config for chan_zap:
		c = AstConf("zapata.conf")
		c.append("")
		c.append("; Zaptel Trunk %s" % self.name)
		c.append("context=in-%s" % self.name)
		c.append("callerid=asreceived")
		c.appendValue(self, "signalling")
		c.appendValue(self, "rxgain")
		c.appendValue(self, "txgain")
		if self.group:
			c.appendValue(self, "group")
		c.append("channel=%s" % self.channels)
		c.append("")

		#Dial part to use on dialout macro
		if self.group:
			self.dial = "Zap/g%d/%sww${ARG1}" % (self.group, self.prefix)
		else:
			self.dial = "Zap/%s/%sww${ARG1}" % (self.channels, self.prefix)
		
		#What to do with incoming calls
		self.createIncomingContext()

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("res_crypto")
		needModule("chan_iax2")

		#Dial part to use on dialout macro
		self.dial = "IAX2/%s/${ARG1}" % self.name
		#What to do with incoming calls
		self.createIncomingContext()
		
		c = AstConf("iax.conf")
		if not c.hasSection(self.name):
			c.setSection(self.name)
			c.append("type=friend")
			c.append("host=%s" % self.host)
			c.append("username=%s" % self.name)
			c.append("context=in-%s" % self.name)
			c.append("bandwidth=%s" % self.bandwidth)
			c.append("qualify=yes")
			if self.trunk:
				c.append("trunk=yes")
			if self.auth == "rsa" and self.inkeys and self.outkey:		
				c.append("auth=rsa")
				c.append("inkeys=%s" % self.inkeys)
				c.append("outkey=%s" % self.outkey)
			elif self.auth == "md5":
				c.append("auth=md5")
				c.append("secret= %s" % self.pw)
			elif self.auth == "plain":
				c.append("secret= %s" % self.pw)

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("res_crypto")
		needModule("chan_sip")

		#Dial part to use on dialout macro
		#If we use the host it will not use authentication
		#it's safe to use the peer name 
		self.dial = "SIP/${ARG1}@%s" % (self.name)
		
		#What to do with incoming calls
		self.createIncomingContext()
		
		c = AstConf("sip.conf")
		if not c.hasSection(self.name):
			c.setSection(self.name)
			c.append("type=friend")
			c.append("username=%s" % self.name)
			c.append("regexten=%s" % self.name)
			c.append("fromuser=%s" % self.name)
			c.append("secret=%s" % self.pw)
			c.append("host=dynamic")
			c.append("insecure=very")
			c.append("context=in-%s" % self.name)
			c.append("canreinvite=no")
			c.append("dtmfmode=inband")
			c.append("call-limit=1")
			if self.nat:
				c.append("nat=yes")
			c.append("qualify=yes")
			c.append("disallow=all")
			c.append("allow=ulaw")
			c.append("allow=alaw")

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("res_crypto")
		needModule("chan_sip")

		#Dial part to use on dialout macro
		self.dial = "SIP/${ARG1}@%s" % (self.host)
		if self.forward:
			self.dial += "/{$ARG1}" 
		
		#What to do with incoming calls
		self.createIncomingContext()
		
		c = AstConf("sip.conf")
		c.setSection("general")
		c.append("register=%s:%s@%s" % (self.id, self.pw, self.host))

		if not c.hasSection(self.name):
			c.setSection(self.name)
			c.append("type=friend")
			c.append("username=%s" % self.id)
			c.append("secret=%s" % self.pw)
			c.append("host=%s" % self.host)
			c.append("context=in-%s" % self.name)
			c.append("auth=md5")
			c.append("canreinvite=no")
			if self.nat:
				c.append("nat=yes")

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("chan_zap")

		c = AstConf("zaptel.conf")
		c.setSection("")
		c.destar_comment = False
		c.append("# %s" % self.name)
		c.append("dynamic=eth,%s/%s,%d,%d" % (self.localdriver, self.address, self.numchannels, self.timing))
		c.append("bchan=%s" % self.channels)
		if self.coding:
			c.append("%s => %s" % (self.coding,self.channels))
		c.append("dchan=%s" % self.dchannel)
		c.append("")

		# Create config for chan_zap:
		c = AstConf("zapata.conf")
		c.append("")
		c.append("; Zaptel Trunk %s" % self.name)
		c.appendValue(self, "signalling")
		c.append("context=in-%s" % self.name)
		c.append("usecallerid=yes")
		c.append("callerid=asreceived")
		c.append("hidecallerid=no")
		c.append("callwaiting=no")
		c.append("usecallingpres=yes")
		c.append("callwaitingcallerid=no")
		c.append("threewaycalling=yes")
		c.append("transfer=yes")
		c.append("cancallforward=yes")
		c.append("callreturn=no")
		c.append("echocancel=yes")
		c.append("echocancelwhenbridged=yes")
		c.append("echotraining=yes")
		c.append("relaxdtmf=yes")
		c.append("immediate=no")
		c.append("busydetect=no")
		if self.pridialplan:
			c.appendValue(self, "pridialplan")
		if self.group:
			c.appendValue(self, "group")
		if self.switchtype:
			c.appendValue(self, "switchtype")
		if self.coding:
			c.append("%s => %s" % (self.coding,self.channels))
		c.append("channel=%s" % self.channels)
		c.append("")

		#Dial part to use on dialout macro
		self.dial = ""
		if self.group:
			self.dial = "Zap/g%d/${ARG1}" % (self.group)
		else:
			self.dial = "Zap/%s/${ARG1}" % (self.channels)
		
		#What to do with incoming calls
		self.createIncomingContext()

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("res_crypto")
		needModule("chan_sip")

		#Dial part to use on dialout macro
		#If we use the host it will not use authentication
		#it's safe to use the peer name 
		if self.register:
			self.dial = "SIP/${ARG1}@%s" % (self.name)
		else:
			self.dial = "SIP/${ARG1}@%s" % (self.host)
			if self.forward:
				self.dial += "/${ARG1}" 
		
		#What to do with incoming calls
		self.createIncomingContext()
		
		c = AstConf("sip.conf")
		c.setSection("general")
		if self.register:
			if not self.port:
				registerstr = "register => %s:%s@%s" % (self.id, self.pw, self.host)
			else:
				registerstr = "register => %s:%s@%s:%s" % (self.id, self.pw, self.host, self.port)
			if self.forward: 
				registerstr += "/%s" % self.id
			c.append(registerstr)

		if not c.hasSection(self.name):
			c.setSection(self.name)
			c.append("type=friend")
			c.append("username=%s" % self.id)
			c.append("fromuser=%s" % self.id)
			c.append("secret=%s" % self.pw)
			c.append("host=%s" % self.host)
			if self.port:
				c.append("port=%s" % self.port)
			if self.dtmfmode:
				c.append("dtmfmode=%s" % self.dtmfmode)
			c.append("context=in-%s" % self.name)
			if self.fromdomain:
				c.append("fromdomain=%s" % self.fromdomain)
			if self.nat:
				c.append("nat=yes")
			if self.insecure:
				c.append("insecure=port,invite")
			if self.t38enable:
				c.append("t38pt_udptl=yes")
				c.append("canreinvite=yes")
			else:
				c.append("canreinvite=no")

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("chan_zap")

		c = AstConf("zaptel.conf")
		c.setSection("")
		c.destar_comment = False
		for n in range(self.cards):
			c.append("span=%d,1,3,ccs,ami" % (self.channels + n))
		for n in range(self.cards):
			c.append("bchan=%d-%d" % (self.channels + n * 3, self.channels + n * 3 + 1))
			c.append("dchan=%d" % (self.channels + n * 3 + 2))
		c.append("alaw=%d-%d" % (self.channels + n * 3, self.channels + n * 3 + 2))
		c.append("")

		# Create config for chan_zap:
		c = AstConf("zapata.conf")
		c.append("")
		c.append("nationalprefix = 0")
		c.append("internationalprefix = 00")
		c.append("pridialplan = dynamic")
		c.append("prilocaldialplan = local")
		c.append("echocancel=no")
		c.append("echotraining = 300")
		c.append("echocancelwhenbridged=no")
		
		c.append("switchtype=euroisdn")
		c.append("signalling=%s" % self.signalling)

		c.append("; ISDN Trunk %s" % self.name)
		c.append("context=in-%s" % self.name)
		if self.group:
			c.appendValue(self, "group")

		chanstr = ""
		for n in range(self.cards):
		    if chanstr:
			chanstr = chanstr + ","
		    chanstr = chanstr + "%d-%d" % (self.channels + n * 3 , self.channels + 1 + n * 3 )
		c.append("channel=%s" % chanstr)
		c.append("")

		#Dial part to use on dialout macro
		if self.group:
			self.dial = "Zap/g%d/${ARG1}" % (self.group)
		
		#What to do with incoming calls
		self.createIncomingContext()

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("chan_zap")

		# Create config for chan_zap:
		c = AstConf("zapata.conf")
		c.append("")
		c.append("; Zaptel Trunk %s" % self.name)
		if self.group:
			c.appendValue(self, "group")
		contextin = "in-%s" % self.name
		c.append("context=%s" % contextin)
		c.append("callerid=asreceived")
		c.append("usecallerid=yes")
		c.append("hidecallerid=no")
		c.append("callwaiting=no")
		c.append("usecallingpres=yes")
		c.append("callwaitingcallerid=no")
		c.append("threewaycalling=yes")
		c.append("transfer=yes")
		c.append("cancallforward=yes")
		c.append("callreturn=no")
		c.append("echocancel=yes")
		c.append("echocancelwhenbridged=yes")
		c.append("echotraining=yes")
		c.append("relaxdtmf=yes")
		c.append("immediate=no")
		c.append("busydetect=no")
		c.appendValue(self, "signalling")
		c.appendValue(self, "switchtype")
		c.appendValue(self, "rxgain")
		c.appendValue(self, "txgain")
		c.append("channel=%s" % self.channels)
		c.append("")

		#Dial part to use on dialout macro
		if self.group:
			self.dial = "Zap/g%s/${ARG1}" % (self.group)
		else:
			self.dial = "Zap/%s/${ARG1}" % (self.channels)
		
		#What to do with incoming calls
		self.createIncomingContext()

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)
	def createAsteriskConfig(self):
		needModule("chan_dahdi")

		c = AstConf("system.conf")
		c.setSection("")
		c.destar_comment = False
		c.append("fxs%s=%s" % (self.signalling[4:], self.channels))
		c.append("")

		# Create config for chan_dahdi:
		c = AstConf("chan_dahdi.conf")
		c.append("")
		c.append("; DAHDItel Trunk %s" % self.name)
		c.append("context=in-%s" % self.name)
		c.append("callerid=asreceived")
                c.append("busydetect=yes")
                c.append("busycount=8")
		c.appendValue(self, "signalling")
		c.appendValue(self, "rxgain")
		c.appendValue(self, "txgain")
		if self.group:
			c.appendValue(self, "group")
		c.append("channel=%s" % self.channels)
		c.append("")

		#Dial part to use on dialout macro
		if self.group:
			self.dial = "DAHDI/g%d/${ARG1}" % (self.group)
		else:
			self.dial = "DAHDI/%s/${ARG1}" % (self.channels)
		
		#What to do with incoming calls
		self.createIncomingContext()

		if panelutils.isConfigured() == 1 and self.panel:
			panelutils.createTrunkButton(self)