I needed to connect a GSM gateway to my FreeSWITCH PBX, in order to receive SMS and mobile calls and emulate a normal mobile phone. I’ve got the Yeastar Neogate TG200 V2 for this purpose (Firmware Version: 53.18.0.39, running Asterisk 1.6.2.6 on an ARM processor).
This blog entry has helped a lot and saved a bunch of time.
The box supports OpenVPN, so you can place it in some remote location behind NAT, and manage it via the VPN connection. The client version is rather old (2.0.5), so it does not support embedded certificates in the client config, and also “topology subnet” option is not supported. You need to pack your vpn.conf and the certificates and pivate key into a TAR archive and upload to Neogate via its web interface.
It’s sufficient to configure one SIP trunk to your PBX, and manipulate the To: header in order to distinguish between SIM cards on incoming calls.
When the SIP trunk was configured (FreeSWITCH as a registrar), I started receiving the following warnings on FreeSWITCH, and the registration status was quickly removed after neogate’s REGISTER message:
2014-12-22 12:29:42.208567 [WARNING] sofia.c:5721 Sip user 'gsm01@xxxxx.net' is now Unreachable 2014-12-22 12:29:42.208567 [WARNING] sofia.c:5732 Expire sip user 'gsm01@xxxxx.net' due to options failureMy FreeSWITCH was sending SIP OPTIONS requests to all registered users and removed the registrations unless the clients responded with status 200 or 468. Neogate responds with 404 Not Found on such requests toward the trunk SIP user. I had to disable “unregister-on-options-fail” option in FreeSWITCH internal SIP profile.
In SIP trunk configuration, “Advanced->Caller ID” was automatically set to my trunk’s registration user name. Because of this, all incoming calls had this name as the caller ID, and the original caller number was lost. After setting this field to blank, the problem was resolved.
In “Mobile to IP” rules, you can set a different rule for each SIM card. The “Hotline” field should not be blank, and should contain some distinguishing number. It will be used in To field in the SIP INVITE on incoming calls. If you leave “Hotline” empty, the Neogate will respond with dial tone and collect DTMF digits before placing the call to your SIP trunk. So far I could not find any documentation that describes this.
Also in trunk configuration, sometimes I had to reboot the box in order for my changes to take effect.
The box uses the standard Asterisk management interface for sending and receiving SMS, and I’m planning to use this Perl module through the VPN connection.
It’s not yet clear when I can start working on a new-generation Torrus, but here are some nice software projects which would probably inspire the new design, or probably be part of the new design. I haven’t looked into them in depth though.
and yes, the new project will most probably have its core in Go. But the SNMP discovery engine will most probably remain in Perl because of a big list of supported vendors.
CEO Mike Leuthner discusses Phonami’s new Admin panel, allowing customers to activate Monster PBX accounts, setup billing, add and remove users directly from Google Apps.
SendHub co-founder Ryan Pfeffer discusses a product overview, Kazoo at scale, and supporting WebRTC and Mobile.
2600hz and Voxbone discussing WebRTC at WeWork San Francisco, ….sorry for the poor audio quality
Want to become your own carrier! We’ve launched an incredible new website dedicated to partners, which can be found at partner.2600hz.com. The new site provides information, resources and contact information for VoIP partners interested in Hosted PBX, and soon, Hosted PBX + Mobile.
What does this mean for you? You’ll find new information about our product offerings and how to market immediately and scale quickly.
On our new partner website, you’ll find resources on:
In conjunction with this website launch, we’re introducing a whole bunch of new and exciting features and benefits that include:
Become a 2600hz Partner Today!
Want to take the first step? Contact sales@2600hz.com or sign up today at http://partner.2600hz.com/html/contact.html. We will give you in-depth training and support you as you build your business. Become a valued partner and own the competition!
Also read the press release: http://www.prweb.com/releases/2014/11/prweb12292816.htm
Voxbeam is providing worldwide PSTN connectivity at competitive rates, and it allows you to use any Caller ID, which is very convenient for call forwarding. The Voxbeam gateway authenticates the clients by their IP addresses only, so you need a static IP address, and no username or password are required. The FreeSWITCH configuration shown below allows you to control which destinations should be routed to Voxbeam. With a bit of further extension, you can also control which destinations would use different tariff plans at Voxbeam. This configuration covers only their Standard pricing plan. Here INTERNALDOMAIN is a name of the SIP realm that is used for registered users. We assume that the variable “outbound_caller_id_number” is set elsewhere above in the dialplan.
--- File: ip_profiles/external/voxbeam.xml --- <include> <gateway name="voxbeam_outbound"> <param name="realm" value="sbc.voxbeam.com" /> <param name="register" value="false" /> <!-- important, so that your caller ID is transmitted properly --> <param name="caller-id-in-from" value="true"/> </gateway> </include> --- File: dialplan/INTERNALDOMAIN/05_pstn_outbound.xml --- <include> <!-- Express destination and caller numbers in E.164 notation without leading plus sign. Note that we treat numbers with one leading zero as local Swiss numbers --> <extension name="pstn_normalize" continue="true"> <condition field="destination_number" expression="^00([1-9]\d+)$" break="never"> <action inline="true" application="set" data="e164_dest=$1"/> </condition> <condition field="destination_number" expression="^0([1-9]\d+)$" break="never"> <action inline="true" application="set" data="e164_dest=41$1"/> </condition> <condition field="${outbound_caller_id_number}" expression="^00([1-9]\d+)$" break="never"> <action inline="true" application="set" data="e164_cid=$1"/> </condition> <condition field="${outbound_caller_id_number}" expression="^0([1-9]\d+)$" break="never"> <action inline="true" application="set" data="e164_cid=41$1"/> </condition> </extension> <!-- Here we define that calls to Russia and Ukraine should go through Voxbeam --> <extension name="pstn_select_itsp" continue="true"> <condition field="${e164_dest}" expression="^(7|38)" break="on-true"> <action inline="true" application="set" data="outbound_itsp=voxbeam"/> </condition> </extension> <!-- send matched calls to Voxbeam --> <extension name="pstn_voxbeam"> <condition field="${outbound_itsp}" expression="^voxbeam$" break="on-false"> <action application="set" data="effective_caller_id_number=${e164_cid}"/> <action application="bridge" data="sofia/gateway/voxbeam_outbound/0011103${e164_dest}"/> </condition> </extension> <!-- send everything else to Sipcall.ch --> <extension name="pstn_sipcall"> <condition field="destination_number" expression="^(0\d+)$"> <action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"/> <action application="bridge" data="sofia/gateway/sipcall/$1"/> </condition> </extension> </include>This is a very simple example, and a bit more logic can be introduced, such as looking up in some kind of a database for least cost routing, and so on.
Phosfluorescently utilize future-proof scenarios whereas timely leadership skills. Seamlessly administrate maintainable quality vectors whereas proactive mindshare.
Dramatically plagiarize visionary internal or "organic" sources via process-centric. Compellingly exploit worldwide communities for high standards in growth strategies.
Wow, this most certainly is a great a theme.
Donec sed odio dui. Nulla vitae elit libero, a pharetra augue. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.
Donec sed odio dui. Nulla vitae elit libero, a pharetra augue. Nullam id dolor id nibh ultricies vehicula ut id elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.