Yesterday we upgraded Cloud-miniSipServer to support hunt-group feature.
HG feature has been supported in local minisipserver for a long time. Lots of small companies use this feature to service their customers. The HG service in cloud-minisipserver is almost same with local-minisipserver, such as same service log, same configurations.
The difference is GUI display. Please refer to following figures.
One is for cloud-minisipserver.
another is for local-minisipserver:
For more details of hunt-group service, please refer to our online document:
Sometimes, we need limit the call right of some extensions. For example, we want to limit only specific extensions can make out-group calls to outsides, others can only make calls between extensions.
In MSS, we use “call level” feature to do it. By default, we don’t assign “call level” to any called number prefix in “analyze called number” table. That means all extensions can have the same right. To limit extensions, we should indicatedifferent “call level” to the called number prefix and assign relative “call level” right to special extensions, then they will have the right to make such calls.
For example, the default out-group call prefix is “9”. Please click menu “Dial plan / Analyze called number” and edit or add a record whose prefix is “9” and route type is “external line”. In this configuration, we can select “call level 1” to this prefix “9”.
Then, please click menu “data / local users” and edit or add a local user. In the pop-up dialog, please click “Basic Call” tab and enable “Call level 1” to this extension.
After that, the extension has the “call level 1” right to make calls to outside by dialing “9xxxxx”. For others, since they don’t have “call level 1” right, their calls will be rejected when they dial “9xxxxx”.
One of our customer has two office branch in different cities and two MSS have been deployed. Following figure describe the network topology:
The extensions of MSS1 are 1xx, such as 100,101, and so on.
The extensions of MSS2 are 2xx, such as 200, 201, and so on.
With previous MSS versions, it is no problem to send/receive instant messages between local users. But it cannot send instant messages to the extensions of another SIP server.
So we upgrade MSS to V6.1.5 to support instant messages between SIP servers.
To do that, we need establish SIP trunk between these SIP servers. Once you can make calls to the extensions of another SIP server (MSS), it will be no problem to send instant messages to them.
That means we need configure MSS with (1) peer server configurations, (2) Dial plan configurations which we have described in “how to use SIP trunk” document. Please refer to following document for details of SIP trunk:
Some customers often request to deploy MSS behind NAT, but still need provide public service. That means MSS is in private network and some SIP phones/clients are in public network (internet), or MSS need work with public VoIP carriers’ network.
Following figure describes a simple network for this scenario:
In this network, we can see
(1) Private network is connected to public network by a router whose public address is 8.8.8.8 and private address is 192.168.1.1
(2) MSS is deployed in private network with private address 192.168.1.2.
(3) Some SIP phones are in the same private network, such as local users 100 and 101. Some SIP phones are in public network, such as local user 102.
It is no problem for local user 100 and 101 to visit MSS since they are in the same network. So the problem is how to make outside local user (102) can visit MSS.
We can resolve it by forwarding some ports in router.
First, in the router, we can configure forwarding UDP port 5060, 10000~20000 to the PC where MSS is installed. Most routers can support this function. Port 5060 is standard SIP port. Ports 10000~20000 are RTP ports to transfer media streams.
Second, we must indicate MSS to work with public address. Please click menu “Data / System / SIP” and fill the “Main address” with the public address “8.8.8.8”. SIP phones/clients can use this public address to visit MSS.
There is another problem. In above scenario, the router is configured with a fixed public address. In normal, the router could be ADSL router and it maybe has a dynamic IP address. Outside users cannot use the dynamic address to visit MSS. Then, how can we provide public services?
To resolve it, we can use domain name, for example, we can use DynDNS to provide domain name for our MSS. The router must be able to support “Dynamic DNS”. In our example, we assume we get a domain name “sip.dyndns.org” from DynDNS and configure it in our router, then we can use this domain name as another miniSIPServer address. In following figure, we use such domain name as main address, and use the private address as additional address.
SIP phones/clients must be able to use domain name as server address or proxy address, so they can configure “sip.dyndns.org” to visit MSS in our scenario and make calls.
How to redirect external line incoming call to an hunting-group
By default, incoming calls from external lines will be routed to local users or auto-attendants.
But in some deployment, customers require that incoming call from external lines should be routed to hunting-group. Then local users can answer the incoming calls in round-robin order.
It is very easy to do that in MSS. Do you remember that we need configure a called number to trigger hunting-group, right? In this table, you only need configure it with external line number.
For example, external line is “1234567”, then in the “hunting group detection” configuration, we only need configure detection called number to be “1234567” to trigger hunting-group.
Cloud-MSS is upgraded to support uploading customized audio file.
In auto-attendant or voice-mail features, customers often hope to use their own audio files. It is very easy to replace system audio files in local-MSS. But in cloud-MSS, it has little problem, such as file transferred through internet, etc.
With the new version, customers can upload audio file through HTTP. Of course, the audio file should have the same format same with local-MSS required.
After sign into your cloud-MSS account, please follow the steps described in below figure:
We need mention that please be paitent because cloud-MSS will try to download the audio file from your HTTP URL immediately. It could be slow if the network is not very good.
Some VoIP providers support “SIP trunking” services, most of them require user name and password for authorization.
To work with such SIP trunking, we need configure “external lines” in miniSipServer to establish connection with the VoIP carriers’ server.
In the external line configuration, we can configure peer server address (or domain name) , user name and password for authorization of register process and call process.
In previous blog, we have discussed why there is one-way audio problem. In this blog, we will continue our discussion to find how to resolve this problem.
As we can see, the SIP phone (100) sends its private address to SIP client (101) and this makes the one-way problem, so we can think why not send its public address which is 8.8.8.8 to the SIP client? If it can do that, SIP client can send its audio stream to this public address and the router will transfer it to the SIP phone, then SIP phone can hear SIP client, right?
Right! It is a perfect solution. But we need ask: how can the SIP phone (100) know its public address?
The answer is STUN. STUN means “Simple Traversal of User Datagram Protocol (UDP) through Network Address Translators (NATs)”. It is a very long definition. Simplely, STUN is a tool to discover public address for devices deployed in a private network.
Please refer to following figure:
Before SIP phone makes a call, it asks STUN server firstly to get its public address. After that, in our previous scenario, when SIP phone begins to make a call, it can say: Hi, I am 100, my audio address is 8.8.8.8:10000. Please send audio stream to me.
By the way, here one public address means one public IP address plus one port. For example, in “8.8.8.8:10000”, “8.8.8.8” is public IP address, and “10000” is port. “8.8.8.8:10001” is another public address.
Since 8.8.8.8 is a public address, it is no problem for SIP client to send its audio stream to this address. Then, both call sides can hear each other now.
Almost all SIP devices, no matter SIP phones or SIP clients, can support STUN. The only thing we need know is we need indicate which STUN server we should use. In our step by step document, we give a simple example for X-lite, please refer to following document for details:
Can STUN resolve all one-way / no-way audio problem?
No, it can work well in most scenarios, but it cannot resolve all problems. It depends on the private network type. Simplely, it depends on the routers ( of course, in some network, it can be firewall probably too).
Please look at above figure. There are two sessions: one for request public address from STUN server. Another is call session between SIP phone and SIP client.
As we know, the router will keep the mapping relationship between public network address and private network address. By default, most routers will assign and keep the same mapping for different sessions if they are from the same device in the private network. So the SIP phone will have the same public address in these two sessions.
But some routers or networks will assign different mapping for different sessions, that means the sip phone will have different public address for these two sessions, so it still cannot know its public address of the session between it and SIP client.
If STUN cannot resolve your one-way audio problem, the root reason could be the router or your network type, and the final perfect solution is establish a VPN network to include all your SIP phones and SIP clients. That’s another topic.