From umut kahriman, 5 Years ago, written in Python.
This paste is a reply to external serving from umut kahriman
- go back
Embed
Viewing differences between external serving and Re: external serving
def create_gateway_xml(dids):
    root = E.document(type="freeswitch/xml")
    section = et.SubElement(root,"section")
    section.set("name","configuration")

    config = et.SubElement(section,"configuration")
    config.set("name","sofia.conf")

    profiles = et.SubElement(config,"profiles")


    profile = et.SubElement(profiles,"profile")
    profile.set("name","external")

    gateways = et.SubElement(profile,"gateways")
    for did in dids:
        number, did_password = did
        number = str(number)
        did_password = str(did_password)
        gateway = et.SubElement(gateways,"gateway")
        gateway.set("name",number)

        param = et.SubElement(gateway,"param")
        param.set("name","realm")
        param.set("value","xx.xx.xx.xx")

        param = et.SubElement(gateway,"param")
        param.set("name","register")
        param.set("value","true")
        param = et.SubElement(gateway,"param")
        param.set("name","username")
        param.set("value",number)
        param = et.SubElement(gateway,"param")
        param.set("name","password")
        param.set("value",did_password)
        param = et.SubElement(gateway,"param")
        param.set("name","caller-id-in-from")
        param.set("value","true")


    
    domains = et.SubElement(profile,"domains")
    domain = et.SubElement(domains,"domain")
    domain.set("name","all")
    domain.set("alias","false")
    domain.set("parse","true")

    settings = et.SubElement(profile,"settings")
    param = et.SubElement(settings,"param")
    param.set("name","debug")
    param.set("value","0")
    param = et.SubElement(settings,"param"); param.set("name","sip-trace");     param.set("value","no")
    param = et.SubElement(settings,"param"); param.set("name","sip-capture");   param.set("value","no")
    param = et.SubElement(settings,"param"); param.set("name","rfc2833-pt");    param.set("value","101")
    param = et.SubElement(settings,"param"); param.set("name","sip-port");      param.set("value","5080")
    param = et.SubElement(settings,"param"); param.set("name","dialplan");      param.set("value","XML")
    param = et.SubElement(settings,"param"); param.set("name","context");       param.set("value","public")
    param = et.SubElement(settings,"param"); param.set("name","dtmf-duration"); param.set("value","2000")
    param = et.SubElement(settings,"param"); param.set("name","inbound-codec-prefs");   param.set("value","G722,PCMU,PCMA,OPUS,VP8,G729")
    param = et.SubElement(settings,"param"); param.set("name","outbound-codec-prefs");   param.set("value","G722,PCMU,PCMA,OPUS,VP8,G729")
    param = et.SubElement(settings,"param"); param.set("name","hold-music");      param.set("value","$${hold_music}")
    param = et.SubElement(settings,"param"); param.set("name","rtp-timer-name"); param.set("value","soft")
    param = et.SubElement(settings,"param"); param.set("name","local-network-acl"); param.set("value","localnet.auto")
    param = et.SubElement(settings,"param"); param.set("name","manage-presence"); param.set("value","false")
    param = et.SubElement(settings,"param"); param.set("name","inbound-codec-negotiation"); param.set("value","generous")
    param = et.SubElement(settings,"param"); param.set("name","nonce-ttl"); param.set("value","60")
    param = et.SubElement(settings,"param"); param.set("name","auth-calls"); param.set("value","true")
    param = et.SubElement(settings,"param"); param.set("name","inbound-late-negotiation"); param.set("value","true")
    param = et.SubElement(settings,"param"); param.set("name","inbound-zrtp-passthru"); param.set("value","true")
    param = et.SubElement(settings,"param"); param.set("name","rtp-ip"); param.set("value",fs_ip)
    param = et.SubElement(settings,"param"); param.set("name","sip-ip"); param.set("value",fs_ip)
    param = et.SubElement(settings,"param"); param.set("name","ext-rtp-ip"); param.set("value","auto-nat")
    param = et.SubElement(settings,"param"); param.set("name","ext-sip-ip"); param.set("value","auto-nat")
    param = et.SubElement(settings,"param"); param.set("name","rtp-timeout-sec"); param.set("value","300")
    param = et.SubElement(settings,"param"); param.set("name","rtp-hold-timeout-sec"); param.set("value","1800")


    #return et.tostring(root, pretty_print=True, xml_declaration = True, encoding='UTF-8', standalone=False)
    return et.tostring(root, xml_declaration = True, encoding='UTF-8', standalone=False)

tostring(root,pretty_print=True )

captcha