568 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			568 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| apiVersion: v1
 | |
| kind: Service
 | |
| metadata:
 | |
|   name: freeswitch
 | |
|   namespace: freeswitch
 | |
|   annotations:
 | |
|     external-dns.alpha.kubernetes.io/hostname: freeswitch.k-space.ee
 | |
|     metallb.universe.tf/address-pool: eenet
 | |
|     metallb.universe.tf/ip-allocated-from-pool: eenet
 | |
| spec:
 | |
|   ports:
 | |
|     - name: sip-internal-udp
 | |
|       protocol: UDP
 | |
|       port: 5060
 | |
|       targetPort: 5060
 | |
|       nodePort: 31787
 | |
|     - name: sip-nat-udp
 | |
|       protocol: UDP
 | |
|       port: 5070
 | |
|       targetPort: 5070
 | |
|       nodePort: 32241
 | |
|     - name: sip-external-udp
 | |
|       protocol: UDP
 | |
|       port: 5080
 | |
|       targetPort: 5080
 | |
|       nodePort: 31354
 | |
|     - name: sip-data-10000
 | |
|       protocol: UDP
 | |
|       port: 10000
 | |
|       targetPort: 10000
 | |
|       nodePort: 30786
 | |
|     - name: sip-data-10001
 | |
|       protocol: UDP
 | |
|       port: 10001
 | |
|       targetPort: 10001
 | |
|       nodePort: 31788
 | |
|     - name: sip-data-10002
 | |
|       protocol: UDP
 | |
|       port: 10002
 | |
|       targetPort: 10002
 | |
|       nodePort: 30247
 | |
|     - name: sip-data-10003
 | |
|       protocol: UDP
 | |
|       port: 10003
 | |
|       targetPort: 10003
 | |
|       nodePort: 32389
 | |
|     - name: sip-data-10004
 | |
|       protocol: UDP
 | |
|       port: 10004
 | |
|       targetPort: 10004
 | |
|       nodePort: 30723
 | |
|     - name: sip-data-10005
 | |
|       protocol: UDP
 | |
|       port: 10005
 | |
|       targetPort: 10005
 | |
|       nodePort: 30295
 | |
|     - name: sip-data-10006
 | |
|       protocol: UDP
 | |
|       port: 10006
 | |
|       targetPort: 10006
 | |
|       nodePort: 30782
 | |
|     - name: sip-data-10007
 | |
|       protocol: UDP
 | |
|       port: 10007
 | |
|       targetPort: 10007
 | |
|       nodePort: 32165
 | |
|     - name: sip-data-10008
 | |
|       protocol: UDP
 | |
|       port: 10008
 | |
|       targetPort: 10008
 | |
|       nodePort: 30282
 | |
|     - name: sip-data-10009
 | |
|       protocol: UDP
 | |
|       port: 10009
 | |
|       targetPort: 10009
 | |
|       nodePort: 31325
 | |
|     - name: sip-data-10010
 | |
|       protocol: UDP
 | |
|       port: 10010
 | |
|       targetPort: 10010
 | |
|       nodePort: 31234
 | |
|   selector:
 | |
|     app: freeswitch
 | |
|   type: LoadBalancer
 | |
|   externalTrafficPolicy: Local
 | |
|   ipFamilies:
 | |
|     - IPv4
 | |
|   ipFamilyPolicy: SingleStack
 | |
|   internalTrafficPolicy: Cluster
 | |
| ---
 | |
| apiVersion: v1
 | |
| kind: PersistentVolumeClaim
 | |
| metadata:
 | |
|   name: freeswitch-sounds
 | |
|   namespace: freeswitch
 | |
| spec:
 | |
|   accessModes:
 | |
|     - ReadWriteMany
 | |
|   resources:
 | |
|     requests:
 | |
|       storage: 2Gi
 | |
|   storageClassName: longhorn
 | |
| ---
 | |
| apiVersion: apps/v1
 | |
| kind: Deployment
 | |
| metadata:
 | |
|   name: freeswitch
 | |
|   namespace: freeswitch
 | |
|   labels:
 | |
|     app: freeswitch
 | |
|   annotations:
 | |
|     reloader.stakater.com/auto: "true" # reloader is disabled in cluster, (re)deploy it to use
 | |
| spec:
 | |
|   replicas: 1
 | |
|   strategy:
 | |
|     type: Recreate
 | |
|   selector:
 | |
|     matchLabels:
 | |
|       app: freeswitch
 | |
|   template:
 | |
|     metadata:
 | |
|       labels:
 | |
|         app: freeswitch
 | |
|     spec:
 | |
|       volumes:
 | |
|         - name: config
 | |
|           configMap:
 | |
|             name: freeswitch-config
 | |
|             defaultMode: 420
 | |
|         - name: directory
 | |
|           configMap:
 | |
|             name: freeswitch-directory
 | |
|             defaultMode: 420
 | |
|         - name: sounds
 | |
|           persistentVolumeClaim:
 | |
|             claimName: freeswitch-sounds
 | |
|         - name: passwords
 | |
|           secret:
 | |
|             secretName: freeswitch-passwords
 | |
|       containers:
 | |
|         - name: freeswitch
 | |
|           image: mirror.gcr.io/dheaps/freeswitch:latest
 | |
|           env:
 | |
|             - name: SOUND_TYPES
 | |
|               value: en-us-callie
 | |
|             - name: SOUND_RATES
 | |
|               value: "32000"
 | |
|           resources: {}
 | |
|           volumeMounts:
 | |
|             - name: config
 | |
|               mountPath: /etc/freeswitch/sip_profiles/external/ipcall.xml
 | |
|               subPath: ipcall.xml
 | |
|             - name: config
 | |
|               mountPath: /etc/freeswitch/dialplan/default/00_outbound_ipcall.xml
 | |
|               subPath: 00_outbound_ipcall.xml
 | |
|             - name: config
 | |
|               mountPath: /etc/freeswitch/dialplan/public.xml
 | |
|               subPath: dialplan.xml  
 | |
|             - name: config
 | |
|               mountPath: /etc/freeswitch/autoload_configs/switch.conf.xml
 | |
|               subPath: switch.xml
 | |
|             - name: config
 | |
|               mountPath: /etc/freeswitch/vars.xml
 | |
|               subPath: vars.xml
 | |
|             - name: passwords
 | |
|               mountPath: /etc/freeswitch/PASSWORDS.xml  
 | |
|               subPath: PASSWORDS.xml
 | |
|             - name: directory
 | |
|               mountPath: /etc/freeswitch/directory/default
 | |
|             - name: sounds
 | |
|               mountPath: /usr/share/freeswitch/sounds
 | |
| ---
 | |
| apiVersion: v1
 | |
| kind: ConfigMap
 | |
| metadata:
 | |
|   name: freeswitch-config
 | |
|   namespace: freeswitch
 | |
| data: 
 | |
|   dialplan.xml: |
 | |
|     <!--
 | |
|     NOTICE:
 | |
| 
 | |
|     This context is usually accessed via the external sip profile listening on port 5080.
 | |
|     
 | |
|     It is recommended to have separate inbound and outbound contexts.  Not only for security
 | |
|     but clearing up why you would need to do such a thing.  You don't want outside un-authenticated
 | |
|     callers hitting your default context which allows dialing calls thru your providers and results 
 | |
|     in Toll Fraud.
 | |
|     -->
 | |
| 
 | |
|     <!-- http://wiki.freeswitch.org/wiki/Dialplan_XML -->
 | |
|     <include>
 | |
|       <context name="public">
 | |
| 
 | |
|         <extension name="unloop">
 | |
|           <condition field="${unroll_loops}" expression="^true$"/>
 | |
|           <condition field="${sip_looped_call}" expression="^true$">
 | |
|             <action application="deflect" data="${destination_number}"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
|         <!--
 | |
|             Tag anything pass thru here as an outside_call so you can make sure not
 | |
|             to create any routing loops based on the conditions that it came from 
 | |
|             the outside of the switch.  
 | |
|         -->
 | |
|         <extension name="outside_call" continue="true">
 | |
|           <condition>
 | |
|             <action application="set" data="outside_call=true"/>
 | |
|             <action application="export" data="RFC2822_DATE=${strftime(%a, %d %b %Y %T %z)}"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
| 
 | |
|         <extension name="call_debug" continue="true">
 | |
|           <condition field="${call_debug}" expression="^true$" break="never">
 | |
|             <action application="info"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
| 
 | |
|         <extension name="public_extensions">
 | |
|           <condition field="destination_number" expression="^(10[01][0-9])$">
 | |
|             <action application="transfer" data="$1 XML default"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
| 
 | |
|         <extension name="public_conference_extensions">
 | |
|           <condition field="destination_number" expression="^(3[5-8][01][0-9])$">
 | |
|             <action application="transfer" data="$1 XML default"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
|         
 | |
|         <!--
 | |
|             You can place files in the public directory to get included.
 | |
|         -->
 | |
|         <X-PRE-PROCESS cmd="include" data="public/*.xml"/>
 | |
|         <!--
 | |
|             If you have made it this far lets challenge the caller and if they authenticate
 | |
|             lets try what they dialed in the default context. (commented out by default)
 | |
|         -->
 | |
|         <!-- TODO:
 | |
|         <extension name="check_auth" continue="true">
 | |
|           <condition field="${sip_authorized}" expression="^true$" break="never">
 | |
|             <anti-action application="respond" data="407"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
|         -->
 | |
|         <extension name="transfer_to_default">
 | |
|           <condition>
 | |
|             <!-- TODO: proper ring grouping -->
 | |
|             <action application="bridge" data="user/1004@freeswitch.k-space.ee,user/1003@freeswitch.k-space.ee,sofia/gateway/ipcall/53543824"/>
 | |
|           </condition>
 | |
|         </extension>
 | |
|       </context>
 | |
|     </include>
 | |
|   ipcall.xml: |
 | |
|     <include>    
 | |
|       <gateway name="ipcall">
 | |
|         <param name="proxy" value="sip.ipcall.ee"/>
 | |
|         <param name="register" value="true"/>
 | |
|         <param name="realm" value="sip.ipcall.ee"/>
 | |
|         <param name="username" value="6659652"/>
 | |
|         <param name="password" value="$${ipcall_password}"/>
 | |
|         <param name="from-user" value="6659652"/>
 | |
|         <param name="from-domain" value="sip.ipcall.ee"/>
 | |
|         <param name="extension" value="ring_group/default"/>
 | |
|       </gateway>
 | |
|     </include>
 | |
|   00_outbound_ipcall.xml: |
 | |
|     <extension name="outbound">
 | |
|       <!-- TODO: check toll_allow ? -->
 | |
|       <condition field="destination_number" expression="^(\d+)$">
 | |
|         <action application="set" data="sip_invite_domain=sip.ipcall.ee"/>
 | |
|         <action application="bridge" data="sofia/gateway/ipcall/${destination_number}"/>
 | |
|       </condition>
 | |
|     </extension>      
 | |
|   switch.xml: |
 | |
|     <configuration name="switch.conf" description="Core Configuration">
 | |
|       <cli-keybindings>
 | |
|         <key name="1" value="help"/>
 | |
|         <key name="2" value="status"/>
 | |
|         <key name="3" value="show channels"/>
 | |
|         <key name="4" value="show calls"/>
 | |
|         <key name="5" value="sofia status"/>
 | |
|         <key name="6" value="reloadxml"/>
 | |
|         <key name="7" value="console loglevel 0"/>
 | |
|         <key name="8" value="console loglevel 7"/>
 | |
|         <key name="9" value="sofia status profile internal"/>
 | |
|         <key name="10" value="sofia profile internal siptrace on"/>
 | |
|         <key name="11" value="sofia profile internal siptrace off"/>
 | |
|         <key name="12" value="version"/>
 | |
|       </cli-keybindings>
 | |
|       <default-ptimes>
 | |
|       </default-ptimes>
 | |
|       <settings>
 | |
|         <param name="colorize-console" value="true"/>
 | |
|         <param name="dialplan-timestamps" value="false"/>
 | |
|         <param name="max-db-handles" value="50"/>
 | |
|         <param name="db-handle-timeout" value="10"/>
 | |
|         <param name="max-sessions" value="1000"/>
 | |
|         <param name="sessions-per-second" value="30"/>
 | |
|         <param name="loglevel" value="debug"/>
 | |
|         <param name="mailer-app" value="sendmail"/>
 | |
|         <param name="mailer-app-args" value="-t"/>
 | |
|         <param name="dump-cores" value="yes"/>
 | |
|         <param name="rtp-start-port" value="10000"/>
 | |
|         <param name="rtp-end-port" value="10010"/>
 | |
|       </settings>
 | |
|     </configuration>  
 | |
|   vars.xml: |
 | |
|     <include>
 | |
|       <X-PRE-PROCESS cmd="set" data="disable_system_api_commands=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="domain=freeswitch.k-space.ee"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="use_profile=external"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="rtp_sdes_suites=AEAD_AES_256_GCM_8|AEAD_AES_128_GCM_8|AES_CM_256_HMAC_SHA1_80|AES_CM_192_HMAC_SHA1_80|AES_CM_128_HMAC_SHA1_80|AES_CM_256_HMAC_SHA1_32|AES_CM_192_HMAC_SHA1_32|AES_CM_128_HMAC_SHA1_32|AES_CM_128_NULL_AUTH"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,H264,VP8"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="bind_server_ip=auto"/>
 | |
|       <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=host:freeswitch.k-space.ee"/>
 | |
|       <X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=host:freeswitch.k-space.ee"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="unroll_loops=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="outbound_caller_name=FreeSWITCH"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="outbound_caller_id=0000000000"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="call_debug=false"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="console_loglevel=info"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_areacode=372"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_country=EE"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="presence_privacy=false"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="au-ring=%(400,200,383,417);%(400,2000,383,417)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="be-ring=%(1000,3000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="ca-ring=%(2000,4000,440,480)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="cn-ring=%(1000,4000,450)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="cy-ring=%(1500,3000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="cz-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="de-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="dk-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="dz-ring=%(1500,3500,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="eg-ring=%(2000,1000,475,375)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="es-ring=%(1500,3000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="fi-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="fr-ring=%(1500,3500,440)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="hk-ring=%(400,200,440,480);%(400,3000,440,480)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="hu-ring=%(1250,3750,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="il-ring=%(1000,3000,400)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="in-ring=%(400,200,425,375);%(400,2000,425,375)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="jp-ring=%(1000,2000,420,380)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="ko-ring=%(1000,2000,440,480)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="pk-ring=%(1000,2000,400)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="pl-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="ro-ring=%(1850,4150,475,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="rs-ring=%(1000,4000,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="ru-ring=%(800,3200,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="sa-ring=%(1200,4600,425)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="tr-ring=%(2000,4000,450)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="uk-ring=%(400,200,400,450);%(400,2000,400,450)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="bong-ring=v=-7;%(100,0,941.0,1477.0);v=-7;>=2;+=.1;%(1400,0,350,440)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="beep=%(1000,0,640)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="df_us_ssn=(?!219099999|078051120)(?!666|000|9\d{2})\d{3}(?!00)\d{2}(?!0{4})\d{4}"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="df_luhn=?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|6(?:011|5[0-9]{2})[0-9]{12}|(?:2131|1800|35\d{3})\d{11}"/>
 | |
|       <XX-PRE-PROCESS cmd="set" data="digits_dialed_filter=(($${df_luhn})|($${df_us_ssn}))"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider=sip.ipcall.ee"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider_username="/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider_password="/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider_from_domain=sip.ipcall.ee"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider_register=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="default_provider_contact=1004"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1,tlsv1.1,tlsv1.2"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="sip_tls_ciphers=ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="internal_auth_calls=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="internal_sip_port=5060"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="internal_tls_port=5061"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="external_auth_calls=false"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="external_sip_port=5080"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="external_tls_port=5081"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="external_ssl_enable=false"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="rtp_video_max_bandwidth_in=3mb"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="rtp_video_max_bandwidth_out=3mb"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="suppress_cng=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="rtp_liberal_dtmf=true"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="video_mute_png=$${images_dir}/default-mute.png"/>
 | |
|       <X-PRE-PROCESS cmd="set" data="video_no_avatar_png=$${images_dir}/default-avatar.png"/>
 | |
|       <X-PRE-PROCESS cmd="include" data="PASSWORDS.xml"/>
 | |
|     </include>  
 | |
| ---
 | |
| apiVersion: v1
 | |
| kind: ConfigMap
 | |
| metadata:
 | |
|   name: freeswitch-directory
 | |
|   namespace: freeswitch
 | |
| data:
 | |
|   1000.xml: |
 | |
|     <include>
 | |
|       <user id="1000">
 | |
|         <params>
 | |
|           <param name="password" value="$${1000_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1000"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1000"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>
 | |
|       </user>
 | |
|     </include>
 | |
|   1001.xml: |
 | |
|     <include>
 | |
|       <user id="1001">
 | |
|         <params>
 | |
|           <param name="password" value="$${1001_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1001"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1001"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>
 | |
|       </user>
 | |
|     </include>
 | |
|   1002.xml: |
 | |
|     <include>
 | |
|       <user id="1002">
 | |
|         <params>
 | |
|           <param name="password" value="$${1002_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1002"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1002"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>
 | |
|       </user>
 | |
|     </include>        
 | |
|   1003.xml: |
 | |
|     <include>
 | |
|       <user id="1003">
 | |
|         <params>
 | |
|           <param name="password" value="$${1003_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1003"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value="Erki A"/>
 | |
|           <variable name="effective_caller_id_number" value="1003"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>
 | |
|       </user>
 | |
|     </include>
 | |
|   1004.xml: |
 | |
|     <include>
 | |
|       <user id="1004">
 | |
|         <params>
 | |
|           <param name="password" value="$${1004_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1004"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value="Erki A"/>
 | |
|           <variable name="effective_caller_id_number" value="1004"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>    
 | |
|   1005.xml: |
 | |
|     <include>
 | |
|       <user id="1005">
 | |
|         <params>
 | |
|           <param name="password" value="$${1005_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1005"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1005"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>    
 | |
|   1006.xml: |
 | |
|     <include>
 | |
|       <user id="1006">
 | |
|         <params>
 | |
|           <param name="password" value="$${1006_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1006"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1006"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>          
 | |
|   1007.xml: |
 | |
|     <include>
 | |
|       <user id="1007">
 | |
|         <params>
 | |
|           <param name="password" value="$${1007_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1007"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1007"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>        
 | |
|   1008.xml: |
 | |
|     <include>
 | |
|       <user id="1008">
 | |
|         <params>
 | |
|           <param name="password" value="$${1008_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1008"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1008"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>        
 | |
|   1009.xml: |
 | |
|     <include>
 | |
|       <user id="1009">
 | |
|         <params>
 | |
|           <param name="password" value="$${1009_password}"/>
 | |
|         </params>
 | |
|         <variables>
 | |
|           <variable name="toll_allow" value="domestic,local"/>
 | |
|           <variable name="accountcode" value="1009"/>
 | |
|           <variable name="user_context" value="default"/>
 | |
|           <variable name="effective_caller_id_name" value=""/>
 | |
|           <variable name="effective_caller_id_number" value="1009"/>
 | |
|           <variable name="outbound_caller_id_name" value="$${outbound_caller_name}"/>
 | |
|           <variable name="outbound_caller_id_number" value="$${outbound_caller_id}"/>
 | |
|         </variables>          
 | |
|       </user>
 | |
|     </include>        
 | |
|   
 |