Yohann Martineau, blog

Posts tagged telecom

asterisk SIP unregister not working

2013-08-03 15:40:17

For any reason, asterisk 11 requires a new SIP Call-ID to unregister a SIP account whereas RFC3261 SIP specification says that all REGISTERs should use the same Call-ID:

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

           If the same client were to use different Call-ID values, a
           registrar could not detect whether a delayed REGISTER request
           might have arrived out of order.

Here is the paragraph in rfc3261 that proves that asterisk behavior is incorrect:

      6. The registrar checks whether the request contains the Contact
         header field.  If not, it skips to the last step.  If the
         Contact header field is present, the registrar checks if there
         is one Contact field value that contains the special value "*"
         and an Expires field.  If the request has additional Contact
         fields or an expiration time other than zero, the request is
         invalid, and the server MUST return a 400 (Invalid Request) and
         skip the remaining steps.  If not, the registrar checks whether
         the Call-ID agrees with the value stored for each binding.  If
         not, it MUST remove the binding.  If it does agree, it MUST
         remove the binding only if the CSeq in the request is higher
         than the value stored for that binding.  Otherwise, the update
         MUST be aborted and the request fails.

In my case, Call-ID is the same between register and unregister and unregister CSeq is higher than register CSeq.

If the same Call-ID is used between register and unregister, asterisk keeps returning 401 with a new challenge.

Nevertheless, apparently, asterisk accepts the same Call-ID for register-refreshes.

Opensips seems to accept different Call-ID between register and unregister, so let's go with that modification.

Peers updated accordingly.

Permanent link
telecom, protocol, peers, development, english


asterisk 11 listen on port 5060

2013-07-23 15:53:47

I was struggling with a recent asterisk version compiled from source to make it listen on port 5060...

Configure script gave no error, but it was not enough to consider asterisk as operational: openssl-dev or ssl-dev and uuid-dev packages must be installed to build a full-featured asterisk. Asterisk must then be reconfigured, built, etc.

The odd trick was that asterisk keeps building correctly even if ssl or uuid library is not available. Then you start it and it just doesn't listen on sip port (5060) or complains about the lack of an rtp engine...

Well, it seems that openssl dependency is mentioned in README, but uuid does not seem to be...

Permanent link
telecom, linux, debian, english


Mobile networks architecture

2013-02-11 12:06:00

This post does not really bring something new to the community but it's a reminder.

Here is an overview of mobile networks architecture and generations.

Here is a more detailed description of each mobile network generation. Let's start with traditionnal circuit-switched technologies:

And here is an overview of more recent packet based technologies:

And now a bird view of latest telecom providers standard: IP Multimedia Subsystem

Here is now the meaning of all those ugly accronyms:

AUC AUthentication Centre
AS Application Server
BG Border Gateway
BGCF Breakout Gateway Control Function
BSC Base Station Controller
BSS Base Station Sub-system
AUC AUthentication Centre
BTS Base Tranceiver Station
CG Charging Gateway
CSCF Call Session Control Function
DHCP Dynamic Host Configuration Protocol
DNS Domain Name System
DRNC Drift Radio Network Controller
E-CSCF Emergency Call Session Control Function
EDGE Enhanced Data rates for GSM Evolution
EIR Equipment Identity Register
EPC Evolved Packet Core
EPS Evolved Packet System
E-UTRAN Evolved Universal Terrestrial Radio Access Network
GGSN Gateway GPRS Support Node
GMSC Gateway Mobile Switching Centre
GSM Global System for Mobile
GSS GPRS Sub-System
GPRS General Packet Radio Service
HLR Home Location Register
HSDPA High Speed Downlink Packet Access
HSS Home Subscriber Server
I-CSCF Interrogating Call Session Control Function
IMS IP Multimedia Subsystem
MGCF Media Gateway Controller Function
MGW Media GateWay
MME Mobility Management Entity
MRFC Media Resource Function Controller
MRFP Media Resource Function Processor
MS Mobile Station
MSC Mobile Switching Centre
NGN Next Generation Network
NSS Network Sub-System
PCU Packet Control Unit
GSS GPRS Sub-System
PCRF Policy and Charging Rules Function
P-CSCF Proxy Call Session Control Function
PDN Packet Data Network
PLMN Public Land Mobile Network
PSTN Public Switched Telephone Network
RADIUS Remote Authentication Dial In User Service
RNC Radio Network Controller
S-CSCF Serving Call Session Control Function
SIP Session Initiation Protocol
SGSN Service GPRS Support Node
SGW Signaling/Serving GateWay
SLF Subscriber Location Function
SRNC Serving Radio Network Controller
TRAU Transcoder Rate Adaptor Unit
TSC Transit Switching Centre
UE User Equipment
UMTS Universal Mobile Telecommunications System
UTRAN UMTS TRAnsport Network
VLR Visitor Location Register
Permanent link
telecom, english