FreeSWITCH
Getting Started with FreeSWITCH
The below configuration should be used as an example.
Setting up the Gateway
<include> <gateway name="surevoip"> <param name="username" value="[my SureVoIP account number]"/> <!--/// account password required by freeswitch but will be ignored if authenticating by IP ///--> <param name="password" value="pass"/> <!-- proxy name depends on method for authentication --> <param name="proxy" value="XXXX.surevoip.co.uk"/> <param name="register" value="false"/> <!--send an options ping every x seconds, failure will unregister and/or mark it down--> <param name="ping" value="60"/> </gateway> </include>
Don't forget to start the new gateway on the FreeSWITCH console:
freeswitch> sofia profile external rescan reloadxml
This assumes the gateway was created in the external profile.
Inbound Routing
<include> <extension name="inbound_surevoip"> <condition field="destination_number" expression="^([my SureVoIP phone number])$"> <action application="set" data="domain_name=$${domain}"/> <!-- Our main incoming greeting extension is called 'frontdoor' --> <action application="transfer" data="frontdoor XML default"/> </condition> </extension> </include>
Example:
<include> <extension name="01134960000_Reception"> <condition field="destination_number" expression="^(01134960000)$"> <action application="set" data="domain_name=$${domain}"/> <!-- Our main incoming greeting extension is called 'frontdoor' --> <action application="transfer" data="frontdoor XML default"/> </condition> </extension> <extension name="01134960001_DDI_extension"> <condition field="destination_number" expression="^(01134960001)$"> <action application="set" data="domain_name=$${domain}"/> <!-- This DDI transfers directly to extension 5001 --> <action application="transfer" data="5001 XML default"/> </condition> </extension> </include>
Outbound Routing
The below matches the number dialled by an internal extension and routes it out to the gateway (defined above).
This is UK number format. It matches optional 9 prefix and either national significant format or e.164 format (ie 01224900123 or +441224900123).
<include> <extension name="UK_Outbound"> <condition field="destination_number" expression="^9?(?:0|\+?44)([1-9]\d{8,9})$"> <!-- effective_caller_id can be set if authenticating by IP and caller ID --> <action application="set" data="effective_caller_id_number=[my SureVoIP SIP user account]" /> <action application="set" data="effective_caller_id_name=[the CLI to display]" /> <action application="bridge" data="sofia/gateway/surevoip/44$1" /> </condition> </extension> </include>
International dialling, with optional 9 prefix. Number to call must have either + or 00 to indicate international number.
<include> <extension name="Intl_Outbound"> <condition field="destination_number" expression="^9?(?:00|\+)([1-9]\d{6,19})$"> <!-- effective_caller_id can be set if authenticating by IP and caller ID --> <action application="set" data="effective_caller_id_number=[my SureVoIP SIP user account]" /> <action application="set" data="effective_caller_id_name=[the CLI to display]" /> <action application="bridge" data="sofia/gateway/surevoip/$1" /> </condition> </extension> </include>
Emergency dialling, includes 999 and 112 and non-emergency including 101, 105, 111, 116xxx with optional 9 prefix.
<include> <extension name="Emergency_Outbound"> <condition field="destination_number" expression="^9?(999|112|101|105|111|116\d{3})$"> <!-- effective_caller_id can be set if authenticating by IP and caller ID --> <action application="set" data="effective_caller_id_number=[my SureVoIP SIP user account]" /> <action application="set" data="effective_caller_id_name=[the CLI to display]" /> <action application="bridge" data="sofia/gateway/surevoip/$1" /> </condition> </extension> </include>
Further Reading
- Provider Configuration: SureVoIP - not updated in a while