From umut kahriman, 5 Years ago, written in Python.
This paste is a reply to external serving from umut kahriman
- view diff
Embed
  1. def create_gateway_xml(dids):
  2.     root = E.document(type="freeswitch/xml")
  3.     section = et.SubElement(root,"section")
  4.     section.set("name","configuration")
  5.  
  6.     config = et.SubElement(section,"configuration")
  7.     config.set("name","sofia.conf")
  8.  
  9.     profiles = et.SubElement(config,"profiles")
  10.  
  11.  
  12.     profile = et.SubElement(profiles,"profile")
  13.     profile.set("name","external")
  14.  
  15.     gateways = et.SubElement(profile,"gateways")
  16.     for did in dids:
  17.         number, did_password = did
  18.         number = str(number)
  19.         did_password = str(did_password)
  20.         gateway = et.SubElement(gateways,"gateway")
  21.         gateway.set("name",number)
  22.  
  23.         param = et.SubElement(gateway,"param")
  24.         param.set("name","realm")
  25.         param.set("value","xx.xx.xx.xx")
  26.  
  27.         param = et.SubElement(gateway,"param")
  28.         param.set("name","register")
  29.         param.set("value","true")
  30.         param = et.SubElement(gateway,"param")
  31.         param.set("name","username")
  32.         param.set("value",number)
  33.         param = et.SubElement(gateway,"param")
  34.         param.set("name","password")
  35.         param.set("value",did_password)
  36.         param = et.SubElement(gateway,"param")
  37.         param.set("name","caller-id-in-from")
  38.         param.set("value","true")
  39.  
  40.  
  41.    
  42.     domains = et.SubElement(profile,"domains")
  43.     domain = et.SubElement(domains,"domain")
  44.     domain.set("name","all")
  45.     domain.set("alias","false")
  46.     domain.set("parse","true")
  47.  
  48.     settings = et.SubElement(profile,"settings")
  49.     param = et.SubElement(settings,"param")
  50.     param.set("name","debug")
  51.     param.set("value","0")
  52.     param = et.SubElement(settings,"param"); param.set("name","sip-trace");     param.set("value","no")
  53.     param = et.SubElement(settings,"param"); param.set("name","sip-capture");   param.set("value","no")
  54.     param = et.SubElement(settings,"param"); param.set("name","rfc2833-pt");    param.set("value","101")
  55.     param = et.SubElement(settings,"param"); param.set("name","sip-port");      param.set("value","5080")
  56.     param = et.SubElement(settings,"param"); param.set("name","dialplan");      param.set("value","XML")
  57.     param = et.SubElement(settings,"param"); param.set("name","context");       param.set("value","public")
  58.     param = et.SubElement(settings,"param"); param.set("name","dtmf-duration"); param.set("value","2000")
  59.     param = et.SubElement(settings,"param"); param.set("name","inbound-codec-prefs");   param.set("value","G722,PCMU,PCMA,OPUS,VP8,G729")
  60.     param = et.SubElement(settings,"param"); param.set("name","outbound-codec-prefs");   param.set("value","G722,PCMU,PCMA,OPUS,VP8,G729")
  61.     param = et.SubElement(settings,"param"); param.set("name","hold-music");      param.set("value","$${hold_music}")
  62.     param = et.SubElement(settings,"param"); param.set("name","rtp-timer-name"); param.set("value","soft")
  63.     param = et.SubElement(settings,"param"); param.set("name","local-network-acl"); param.set("value","localnet.auto")
  64.     param = et.SubElement(settings,"param"); param.set("name","manage-presence"); param.set("value","false")
  65.     param = et.SubElement(settings,"param"); param.set("name","inbound-codec-negotiation"); param.set("value","generous")
  66.     param = et.SubElement(settings,"param"); param.set("name","nonce-ttl"); param.set("value","60")
  67.     param = et.SubElement(settings,"param"); param.set("name","auth-calls"); param.set("value","true")
  68.     param = et.SubElement(settings,"param"); param.set("name","inbound-late-negotiation"); param.set("value","true")
  69.     param = et.SubElement(settings,"param"); param.set("name","inbound-zrtp-passthru"); param.set("value","true")
  70.     param = et.SubElement(settings,"param"); param.set("name","rtp-ip"); param.set("value",fs_ip)
  71.     param = et.SubElement(settings,"param"); param.set("name","sip-ip"); param.set("value",fs_ip)
  72.     param = et.SubElement(settings,"param"); param.set("name","ext-rtp-ip"); param.set("value","auto-nat")
  73.     param = et.SubElement(settings,"param"); param.set("name","ext-sip-ip"); param.set("value","auto-nat")
  74.     param = et.SubElement(settings,"param"); param.set("name","rtp-timeout-sec"); param.set("value","300")
  75.     param = et.SubElement(settings,"param"); param.set("name","rtp-hold-timeout-sec"); param.set("value","1800")
  76.  
  77.  
  78.     #return et.tostring(root, pretty_print=True, xml_declaration = True, encoding='UTF-8', standalone=False)
  79.     return et.tostring(root,pretty_print=True )
  80.  
  81.  
captcha