Browsed by
Tag: sip

miniSIPServer on Debian 9

miniSIPServer on Debian 9

It is a good news to see that the latest Debian 9 is released. We have downloaded and tested it in our lab.

Debian 9 is very interesting. Since it is a stable version, it is important for us to run miniSIPServer on this system. We have to find that so many libraries and softwares have been changed or upgraded. Previous MSS versions cannot work on it by default.

We did lots of work to fix these conflict and upgrade MSS to V31 (build 20170621). And we are exciting to announce that the latest versions can still work on previous Debian systems, such as Debian 7 and Debian 8. Everything is perfect now!

If you want to try Debian 9, please upgrade MSS to the latest V31. And please refresh the document for more details about libraries.

RFC3262

RFC3262

RFC3262 defines a method to provide reliable provisional response messages in SIP dialog. Simply, it uses a new message which is PRACK to response “response” messages. We don’t think it is a good idea, and most traditional VoIP devices don’t following this RFC document.

But now in some interoperability scenarios with the PSTN, it is required to provide RFC3262 capability. Specially in some 4G-IMS networks, for example, in China telcom markets, mobile carriers’ networks will reject SIP calls if they don’t have this capablity.

So we upgrade MSS to V31 to support RFC3262. New MSS will add ‘100rel’ in outgoing calls to update peer sides or SIP phones that it has RFC3262 capability, they can decide to invoke it by themselves. For incoming calls, MSS will not invoke RFC3262 procedures automatically unless peer sides or SIP phones require that.

If you have problem to work MSS with your local ISP networks, please try the latest MSS and hope you can enjoy it.

Concurrent calls of SIP trunk

Concurrent calls of SIP trunk

By default, MSS previous versions don’t limit concurrent calls of SIP trunk. That means you can make or receive calls as much as you can. If peer sides don’t have enough resources, they will reject calls by themselves. But now in some scenarios, customers hope MSS can handle concurrent calls and limit them automatically.

To fit this requirement, we upgrade MSS to provide concurrent calls configurations in SIP trunk. Too much calls will be rejected by MSS itself. Please refer to following figure for more details about these items.

Concurrent calls of SIP trunk
Concurrent calls of SIP trunk

Please pay attention to these.

(1) These items are independent. You can configure different values for them to limit different concurrent calls for outgoing calls and incoming calls.

(2) If one of them is zero, in fact all them can be zero, that means only incoming calls can be received, or can only make outgoing calls outsides.

Citel Technologies, Inc. Announces Interoperability with MyVOIPApp miniSIPServer

Citel Technologies, Inc. Announces Interoperability with MyVOIPApp miniSIPServer

AMHERST, NY and ShenZhen, P.R. China — August 4, 2016 — Citel Technologies, Inc., is pleased to announce that it has successfully completed interoperability testing with MyVoIPApp’s miniSIPServer, a software-based SIP PBX, designed for small and middle size companies, miniSIPServer is very easy to use with rich features and can work on multi-platforms, such as Windows and Linux whilst also fitting both IPv4 and IPv6 networks.

The Portico™ TVA™ offers companies the means to migrate their customers to VoIP without the unnecessary burden of ripping and replacing existing cabling infrastructure, purchasing new IP phones and installing Power over Ethernet switches. Customers can retain their existing digital, analog and Centrex phones without removing the existing switches by SIP enabling those phones through the use of the Portico™ TVA™.  This is a quick and cost-effective means of VoIP migration.

“Used together, the two innovative solutions provide companies with the fastest and most cost-efficient means to upgrade from legacy systems to modern Unified Communications,” said Ian Gomm, VP of Sales & Marketing for Citel.

Citel and MyVoIPApp kicked off interop testing with miniSIPServer at the request of a high-profile customer who was looking to use this Windows-platformed softswitch for a cross-country network of customer service training centres. “We have undertaken interoperability with many IP PBXs over the years, and know that sometimes some systems are easier than others to complete. MiniSIPServer was new to us, but I was really pleased to hear engineers’ initial feedback that the system was easy to work with and interop had gone smoothly” said Andrew Davies, VP, Engineering at Citel. He continued “Then they showed me some quite sophisticated presence monitoring and Busy Lamp Field functionality and I saw the product was a great fit with the Portico™ TVA™, wherever digital business phones were the preferred handset. We look forward to taking the relationship further.”

About Citel Technologies, Inc. (citel.com)

Citel enables SMBs, large enterprises and service providers to realize the cost and productivity benefits of IP telephony while at the same time leveraging their existing PBX infrastructure. Businesses with single or distributed locations and PBX vendors can now deploy next-generation IP applications and services at their own pace, with minimal business disruption. Service providers can deploy Hosted IP telephony services quickly, without having to “rip and replace” existing enterprise PBX handsets and LAN cabling. Citel is based in Amherst, New York with offices in Loughborough, England (UK) and Toronto, Canada.

About MyVoIPApp (myvoipapp.com)

MyVoiPApp was founded in 2007, in ShenZhen, P.R. China. Although a small company its employees all have more than ten years experience in the field of communications and its focus on communication technology has facilitated strong growth and penetration in the VoIP marketplace.

Invalid CSeq number

Invalid CSeq number

One of our customers reported a problem that his external line was always offline with a voip provider. That’s very strange because “external line” is a very basic function of MSS and it works perfectly with lots of voip providers.

We captured the log and found the voip provider returned “400 Bad Request” message with following cause:

P-Registrar-Error: Invalid CSeq number

We checked the REGISTER messages, and think it is no problem in CSeq header. Following items are from MSS:

==>
REGISTER sip:sip.xxx.com SIP/2.0
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 13 REGISTER
...

<==
SIP/2.0 401 Unauthorized
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 13 REGISTER
...

==>
REGISTER sip:sip.xxx.com SIP/2.0
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 14 REGISTER
...

<==
SIP/2.0 400 Bad Request
...
Call-ID: 18BF67854AE23D6D2CD772AFMSS002A0001.
CSeq: 14 REGISTER
P-Registrar-Error: Invalid CSeq number
...

We checked RFC3261 to find “CSeq” in SIP-REGISTER procedures:

A UA MUST increment the CSeq value by one for each REGISTER request with the same Call-ID.

Obviously we are right. But why did peer side reject MSS’ messages?

Finally, we tried to send SIP-REGISTER with different ‘call-id’, and the problem was resolved! That made us confused again because in RFC3261 we can find the details of “call-id” in SIP-REGISTER procedures:

All registrations from a UAC SHOULD use the same Call-ID header field value for registrations sent to a particular registrar.

We think the voip provider is unprofessional. Unfortunally, it is hard for them to upgrade their system. So we have to add a switch varant to control MSS to fit this kind of situation.

[sip]
gVarSipRegSameDialog=0

If you have the same problem with some voip providers, please add above parameter into “mss_var_param.ini” file and restart your MSS to enable it.

Anti SIP scanning

Anti SIP scanning

One of our customers reported that his extensions have been cracked. We checked its MSS CDR records. It seems someone has cracked one extension’s password and used this extension number to make lots of calls.

Obveriously, it is a very dangerous problem. We think this “hacker” might send lots of SIP messages to MSS to try such extension’s password. MSS previous version doesn’t consider this scenario and always permit the SIP phone to keep trying its password until it is authorized.

To stop this, we upgrade V26 to support “fail to ban (F2B)” feature. Once SIP phone has failed to check authorization for several times in one minute, MSS will detect it as “scanning” and ban its IP address for several hours. All SIP messages from such address will be rejected directly. Then it is impossible for “hacker” to crack SIP passwords.

This feature is enabled by default and need configure nothing for it.

miniSIPServer updated and say goodbye to webRTC

miniSIPServer updated and say goodbye to webRTC

miniSIPServer V25 is updated to fix some bugs and refine system to be more stable. The most important change is that we cut ‘webRTC’ feature from this version and abover.

As we described in previous post, MSS webRTC feature can work with Chrome navigator. Chrome is upgraded to V48 and make some changes to webRTC and doesn’t consider compatibility with previous version. We think maybe webRTC is perfect for public network services, such as Google hangouts, but it is not suitable or flexible for small or middle size enterprise communication markets.

So we cut it from V25, and keep it in V24. If you are using webRTC feature, please keep your Chrome to V47 or lower versions.

Some virtual servers changed

Some virtual servers changed

Some virtual servers in cloud-MSS system have been changed, please pay attention to these items.

STUN server

Each virtual SIP server will enable STUN feature. For example, if the SIP server address is “1234.s1.minisipserver.com”, its STUN server can also be the same address. That means “1234.s1.minisipserver.com” is also its STUN server address.

Now we suggest “stun.minisipserver.com” by default. It is a simple public STUN server for all virtual SIP servers. Of course, you can still configure your virtual SIP server address as your STUN server.

SMTP server

In voice-mail feature, we need a SMTP server to send emails with attached audio files. Each virtual SIP server can be configured with customers’ own SMTP servers. But we find it could make several problems. For example, most customers try to use Gmail SMTP server. Gmail SMTP server requires that you need enable POP/SMTP firstly, and grand other access. Most customers don’t know how to do that.

So we disable SMTP server configurations. All voice mails will be sent from our own SMTP server.  Most important is that you will need check your spam box if you cannot find voice email in ‘inbox’.

IP address authorization

IP address authorization

This feature was merged to the latest V25 (build 20160126).

Some special SIP devices, for example embeded devices in automaticated system, don’t have full SIP capabilities, they can make or receive simple SIP calls without account and password authorization. They even cannot send REGISTER messages to MSS to update their own status.

Yep, we can configure them as “SIP trunk” in MSS. but it will lost several key features, such as ringing-group. In some scenarios, customers hope to ring all such devices together, so we have to treat them as “local users”.

To fit these requirements, we add “IP address authorization” in local user’s configuration. That means MSS will not require SIP phones/devices to register them firstly, and will not check their account and password if their messages are from specific or configured IP addresses. Please refer to below figure for more details.

IP address authorization
IP address authorization

By the way, we update openAPI document according to the latest V25. If you are interesting in it, please refer to openAPI document.

Refined SMTP library

Refined SMTP library

In voice mail feature, MSS need use SMTP library to send emails. Since MSS can embed Python script functions, it is easy to use Python-smtplib to send email. That’s what we done and it works well, we are satisfied with it.

But smtplib is too old ( in python 2.7) to fit some modem SMTP servers’ requirements. It also has a shortage. It is synchronous. That means it can block thread when sending a email, then its performance is poor and cannot fit our requirements in cloud system.

Something is changed, we want MSS to be better, so we develop a new SMTP library to send voice mails. This SMTP library is asynchronous and can work perfectly with most SMTP servers. And, it is written in C/C++ language.

We upgraded MSS V23 and cloud-MSS to replace python-smtplib with this new SMTP library.

Hope you can enjoy latest versions.

By the way, since MSS V23 has been released for several months and we got very better result, we think it is time to release new LTS version which is V24  and new stable version which is V25 in the end of this year or in the beginning of next year.