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("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("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("app_meetme") c = AstConf("extensions.conf") c.setSection("apps") c.appendExten(self.ext, "Answer") c.appendExten(self.ext, "Wait(1)") # 'd' -- dynamically add conference # 'p' -- allow user to exit the conference by pressing '#' if not self.confno: self.confno = self.ext c.appendExten(self.ext, "MeetMe(%s,dp)" % self.confno) c = AstConf("meetme.conf") c.setSection("rooms") if self.pin: c.append("conf=%s,%s" % (self.confno, self.pin)) else: c.append("conf=%s" % self.confno) try: if panelutils.isConfigured() == 1 and self.panel: panelutils.createMeetmeButton(self) except AttributeError: pass
def createAsteriskConfig(self): needModule("chan_zap") needModule("app_meetme") c = AstConf("extensions.conf") c.setSection(self.pbx) c.appendExten(self.ext, "Answer", self.pbx) c.appendExten(self.ext, "Set(TIMEOUT(absolute)=%d)" % self.timeout, self.pbx) # 'd' -- dynamically add conference # 'P' -- always prompt pin args="" if self.confno: args += "%d" % self.confno args += "|d" if self.pin: args += "P|%d" % self.pin c.appendExten(self.ext, "MeetMe(%s)" % args, self.pbx) if self.confno: c = AstConf("meetme.conf") c.setSection("rooms") room = str(self.confno) if self.pin: room += ",%d" % self.pin c.append("conf=%s" % room) try: if panelutils.isConfigured() == 1 and self.panel: panelutils.createMeetmeButton(self) except AttributeError: pass
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 fixup(self): Cfg.fixup(self) useContext("phones") if panelutils.isConfigured() == 1: for v in self.variables: if v.name == "panelLab" or v.name == "panel": v.hide = False global config_entries dialouts=False for obj in config_entries: if obj.groupName == 'Dialout': dialouts=True alreadyappended = False for v in self.variables: if v.name == "dialout_"+obj.name: alreadyappended = True if not alreadyappended: self.variables.append(VarType("dialout_%s" % obj.name, title=_("%s") % obj.name, type="bool", optional=True,render_br=False)) self.variables.append(VarType("dialout_%s_secret" % obj.name, title=_("Password:"******"Dialout" or v.name=="timeout": v.hide = False queues=False for obj in config_entries: if obj.__class__.__name__ == 'CfgPhoneQueue': queues=True if queues: for v in self.variables: if v.name == "QueueLab" or v.name == "queues": v.hide = False
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 fixup(self): Cfg.fixup(self) useContext("phones") if panelutils.isConfigured() == 1: for v in self.variables: if v.name == "panelLab" or v.name == "panel": v.hide = False
def createPanelConfig(self): try: if panelutils.isConfigured() == 1 and self.panel: if self.technology == "AGENT": panelutils.createAgentButton(self) else: panelutils.createExtButton(self) except AttributeError: pass
def createAsteriskConfig(self): needModule("chan_dahdi") # Create config for chan_dahdi: c = AstConf("chan_dahdi.conf") c.append("") c.append("; DAHDItel Trunk %s" % self.name) if self.group: c.appendValue(self, "group") c.appendValue(self, "signalling") c.appendValue(self, "switchtype") c.append("resetinterval=never") c.append("prilocaldialplan=local") c.appendValue(self, "pridialplan") contextin = "in-%s" % self.name c.append("context=%s" % contextin) 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") 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 = "DAHDI/%s%s/${ARG1}" % (self.dialmethod, 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: p = AstConf("op_buttons.cfg") chgrp = self.channels.split(",") for gr in chgrp: gr_start_end = gr.split("-") for ch in range(int(gr_start_end[0]), int(gr_start_end[1]) + 1): p.setSection("%s/%d" % (self.technology, ch)) p.append("Position=n") p.append("Icon=2") p.append("Extension=-1") p.append("Label=%s-%d" % (self.name, ch))
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") needModule("app_meetme") c = AstConf("extensions.conf") c.setSection(self.pbx) mon_line="" if self.record: needModule("app_mixmonitor") options = "" if self.recordappend: options = 'a' if self.heardvol == self.spokenvol: options = options+'W(%s)' % (self.heardvol) else: options = options+'v(%s)V(%s)' % (self.heardvol, self.spokenvol) if self.recordfilename: mon_line = "MixMonitor(%s.%s|%s)" % (self.recordfilename,self.recordfileformat,options) else: mon_line = "MixMonitor(${TIMESTAMP}-${CALLERIDNAME}(${CALLERIDNUM})-${EXTEN}.%s|%s)" % (self.recordfileformat,options) c.appendExten(self.ext, "Answer") if mon_line: c.appendExten(self.ext, mon_line) c.appendExten(self.ext, "Set(TIMEOUT(absolute)=%d)" % self.timeout) # 'd' -- dynamically add conference # 'P' -- always prompt pin args="" if self.confno: args += "%d" % self.confno args += "|d" if self.pin: args += "P|%d" % self.pin c.appendExten(self.ext, "MeetMe(%s)" % args) if self.confno: c = AstConf("meetme.conf") c.setSection("rooms") room = str(self.confno) if self.pin: room += ",%d" % self.pin c.append("conf=%s" % room) try: if panelutils.isConfigured() == 1 and self.panel: panelutils.createMeetmeButton(self) except AttributeError: pass
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("res_monitor") needModule("app_queue") c = AstConf("queues.conf") c.setSection(self.name) if self.moh: c.append("musiconhold=%s" % self.moh) c.appendValue(self, "strategy") if self.retry: c.appendValue(self, "retry") if self.timeout: c.appendValue(self, "timeout") if self.announce: c.append("announce-frequency=%s" % self.announcefrequency) c.append("announce-holdtime=%s" % self.announceholdtime) if self.monitor: c.append("monitor-format=%s" % self.monitorfileformat) if not self.monitorjoin: c.append("monitor-join=yes") extensions = AstConf("extensions.conf") extensions.setSection("phones") if self.ext: if self.monitor and self.monitorfilename: extensions.appendExten(self.ext, "SetVar(MONITOR_FILENAME=%s)" % self.monitorfilename) extensions.appendExten(self.ext, "SetMusicOnHold(%s)" % self.moh) extensions.appendExten(self.ext, "Queue(%s|Tth)" % self.name) if self.monitor and self.monitorfilename: extensions.appendExten(self.name, "SetVar(MONITOR_FILENAME=%s)" % self.monitorfilename) extensions.appendExten(self.name, "SetMusicOnHold(%s)" % self.moh) extensions.appendExten(self.name, "Queue(%s|Tth)" % self.name) try: if panelutils.isConfigured() == 1 and self.panel: panelutils.createQueueButton(self) except AttributeError: pass
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)
def lookPanel(self): if panelutils.isConfigured() == 1: for v in self.variables: if v.name == "panelLab" or v.name == "panel": v.hide = False
def createPanelConfig(self): try: if panelutils.isConfigured() == 1 and self.panel: panelutils.createExtButton(self) except AttributeError: pass