Asterisk v1.2 upgrade to v1.4 gotchas

May 15, 2015 in SIP Phones by transcom  |  No Comments

Transcom Sites :
Transcom ISP Kill Spam Domains Servair DAC Software
Make Free VOIP Calls to any destination

The upgrade is fairly smooth, and there’s lots of new features. It’s the deprecated stuff that bites you during the migration process.

Start the migration with reading UPGRADE.txt, and then look at the CHANGES file for details that were introduced with 1.4.0.

Make sure to read the new xxx.conf.sample files. That way you may detect new features/options that not seldomly also fix potential security issues.


For sure you will want to have “internal_timing=yes”!


Hurray, you may now monitor the call park and Meet conference with hint, use “Meetme:1234” or “park:701@parkedcalls”!
Call pickup has changed, in particular you really must take a look at PICKUPMARK.

A line starting with ;– (semicolon immediately followed by two dashes) is now treated as opening a multi-line comment, so be aware! You might disable the entirety of what is remaining in your dialplan from this point on.

Changes to watch out for:

  • Calling a voicemail box with flags for busy or unavailable (options b and u) must now be performed with a pipe as opposed to prepending that option to the mailbox number: “b1234” or “u4567” turns into “1234|b” and “4567|u”
  • SIP_HEADER() with (Via) now needs to be written as (Via,1) in Asterisk 1.4
  • LookupCIDName is deprecated. Please use the much more beautiful and easy-to-read Set(CALLERID(name)=${DB(cidname/${CALLERID(num)})}) instead. Note that this must now typically be combined with a conditional statement like ExecIf() if you want to keep the current CallerID name in case the AstDb does not have (better) information on this caller.

Many similar changes for variables are described in ugprade.txt:

  • change ${TIMESTAMP} variable to ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)} function
  • change ${CALLERIDNUM} variable to ${CALLERID(num)} function


  • In the [general] section “port=” has been renamed to “bindport=” to prevent misunderstandings
  • The default for QoS settings has changed from the old TOS to the new DiffServ method. This also applies to iax.conf, by the way.
  • with the new subscribemwi=yes we can finally instruct Asterisk to not send what some SIP devices consider as unsolicited NOTIFY messages (AVM Fritz!Box, Siemens Gigaset and others). This prevents SIP ERROR 481 or “Remote host cannot match NOTIFY”

BLF and hints

  • you will need to set “call-limit=” to make hints (SIP SUBSCRIPTIONS) work in Asterisk 1.4
  • also look at the general setting “limitonpeers=yes” and “notifyringing=yes” etc.


The new threading model is great, but the default of 10 threads is way too low. Symptoms include total loss of audio until the channel is hung up.

  • in general section, add: iaxthreadcount = 200
  • in general section, add: iaxmaxthreadcount = 1000

Later in also this changed due to a security issue:

add this to iax.conf: calltokenoptional =
add this to the [guest] user in iax.conf: requirecalltoken=no (many guests will be using old Asterisk boxes)
In future: Upgrade the IAX peers and provide call tokens!

zaptel turns into dahdi

During the summer 2008 and after the release of 1.4.17 (?) zaptel has been renamed to dahdi. Since zaptel/dahdi provide timing to MeetMe this also matters for users that do not have any zapte (Digium) hardware (ztdummy vs. dahdi_dummy). Also the zaphfc module for the HFC-S ISDN cards is affected. See

Transcom Sites :
Transcom ISP Kill Spam Domains Servair DAC Software
Make Free VOIP Calls to any destination

Posted in SIP Phones.

Leave a Reply