Skype for Asterisk

Hi ALL,

We have integrated Skype with Asterisk (skype user id:- rexesbposolutions). Each call which is coming to skype account is getting transfered to Asterisk Queue. It has following two cases:

case 1: When we call from normal skype account to skype account (rexesbposolutions), everything is working fine.

case 2: This skype account (rexesbposolutions) has been assigned with a online virtual number (00 44 20 **** ****). If somebody dial this number from their landline/cellphone, call is transfered to Asterisk queue but it shows some problem related to G729 codecs. following are Asterisk CLI log:

Executing [s@skypeincoming:1] Answer("Skype/rexesbposolutions-084159e8", "") in new stack
-- Executing [s@skypeincoming:2] Wait("Skype/rexesbposolutions-084159e8", "5") in new stack
-- Executing [s@skypeincoming:3] GotoIfTime("Skype/rexesbposolutions-084159e8", "9:00-18:00|mon-fri|*|*?sky|s|1") in new stack
-- Goto (sky,s,1)
-- Executing [s@sky:1] Playback("Skype/rexesbposolutions-084159e8", "enter") in new stack
-- <Skype/rexesbposolutions-084159e8> Playing 'enter' (language 'en')

[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x4 (ulaw)
[Dec 29 17:27:14] WARNING[4997]: file.c:147 ast_stopstream: Unable to restore format back to 4
– Executing [s@sky:2] Queue(“Skype/rexesbposolutions-084159e8”, “markq|t|||900”) in new stack
– Started music on hold, class ‘default’, on Skype/rexesbposolutions-084159e8
[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x40 (slin)
[Dec 29 17:27:14] WARNING[4997]: res_musiconhold.c:251 ast_moh_files_next: Unable to open file ‘/var/lib/asterisk/moh/manolo_camp-morning_coffee’: No such file or directory
– Stopped music on hold on Skype/rexesbposolutions-084159e8
[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
[Dec 29 17:27:14] WARNING[4997]: res_musiconhold.c:204 moh_files_release: Unable to restore channel ‘Skype/rexesbposolutions-084159e8’ to format ‘2’
– Playing periodic announcement
[Dec 29 17:27:34] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
– <Skype/rexesbposolutions-084159e8> Playing ‘queue’ (language ‘en’)
[Dec 29 17:27:43] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
[Dec 29 17:27:43] WARNING[4997]: file.c:147 ast_stopstream: Unable to restore format back to 2
== Spawn extension (sky, s, 2) exited non-zero on ‘Skype/rexesbposolutions-084159e8’
[Dec 29 17:27:43] NOTICE[4997]: core.cpp:2133 sfa_call_hangup: ending call

following are output of some commands:-

*CLI> core show translation

Translation times between formats (in milliseconds) for one second of data
Source Format (Rows) Destination Format (Columns)

      g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc g726 g722
 g723    -   -    -    -        -     -    -     -    -     -    -    -    -
  gsm    -   -    2    2        2     2    1     2    6     -    -    2    -
 ulaw    -   2    -    1        2     2    1     2    6     -    -    2    -
 alaw    -   2    1    -        2     2    1     2    6     -    -    2    -

g726aal2 - 2 2 2 - 2 1 2 6 - - 2 -
adpcm - 2 2 2 2 - 1 2 6 - - 2 -
slin - 1 1 1 1 1 - 1 5 - - 1 -
lpc10 - 2 2 2 2 2 1 - 6 - - 2 -
g729 - 6 6 6 6 6 5 6 - - - 6 -
speex - - - - - - - - - - - - -
ilbc - - - - - - - - - - - - -
g726 - 2 2 2 2 2 1 2 6 - - - -
g722 - - - - - - - - - - - - -

*CLI> help g729
g729 show hostid Show G.729 Host-ID
g729 show licenses Show G.729 Licenses and Usage
g729 show version Show G.729 Module Version

*CLI> g729 show hostid
Host-ID: 1a:cf:bb:80:da:e8:3b:dc:8c:e0:97:fe:a1:fb:65:c5:3c:e2:0b:be

*CLI> g729 show licenses
0/0 encoders/decoders of 1 licensed channels are currently in use

Licenses Found:
File: -.lic – Key: - – Host-ID: 1a:cf:bb:80:da:e8:3b:dc:8c:e0:97:fe:a1:fb:65:c5:3c:e2:0b:be – Channels: 1 (Expires: 2029-11-30) (OK)

*CLI> g729 show version
Digium G.729A Module Version 1.4_3.1.4 (optimized for i686_32)

*CLI> core show codecs
Disclaimer: this command is for informational purposes only.
It does not indicate anything about your configuration.
INT BINARY HEX TYPE NAME DESC

      1 (1 <<  0)      (0x1)  audio       g723   (G.723.1)
      2 (1 <<  1)      (0x2)  audio        gsm   (GSM)
      4 (1 <<  2)      (0x4)  audio       ulaw   (G.711 u-law)
      8 (1 <<  3)      (0x8)  audio       alaw   (G.711 A-law)
     16 (1 <<  4)     (0x10)  audio   g726aal2   (G.726 AAL2)
     32 (1 <<  5)     (0x20)  audio      adpcm   (ADPCM)
     64 (1 <<  6)     (0x40)  audio       slin   (16 bit Signed Linear PCM)
    128 (1 <<  7)     (0x80)  audio      lpc10   (LPC10)
    256 (1 <<  8)    (0x100)  audio       g729   (G.729A)
    512 (1 <<  9)    (0x200)  audio      speex   (SpeeX)
   1024 (1 << 10)    (0x400)  audio       ilbc   (iLBC)
   2048 (1 << 11)    (0x800)  audio       g726   (G.726 RFC3551)
   4096 (1 << 12)   (0x1000)  audio       g722   (G722)
  65536 (1 << 16)  (0x10000)  image       jpeg   (JPEG image)
 131072 (1 << 17)  (0x20000)  image        png   (PNG image)
 262144 (1 << 18)  (0x40000)  video       h261   (H.261 Video)
 524288 (1 << 19)  (0x80000)  video       h263   (H.263 Video)
1048576 (1 << 20) (0x100000)  video      h263p   (H.263+ Video)
2097152 (1 << 21) (0x200000)  video       h264   (H.264 Video)

Asterisk CLI logs:-


func_logic.so => (Logical dialplan functions)
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:755 load_module: G.729A transcoding module version 1.4_3.1.4, Copyright © 1999-2009 Digium, Inc.
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:756 load_module: This module is supplied under a co mmercial license granted by Digium, Inc.
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:757 load_module: Please see the full license text s upplied by the accompanying
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:758 load_module: “register” utility, or ask for a c opy from Digium.
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:763 load_module: This product includes software dev eloped by the OpenSSL Project
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:764 load_module: for use in the OpenSSL Toolkit. (h ttp://www.openssl.org/)
[Dec 29 18:22:17] NOTICE[4282]: codec_g729a.c:765 load_module: Copyright © 1998-2006 The OpenSS L Project

== Manager registered action G729LicenseStatus
== Manager registered action G729LicenseList
== Host-ID: 1a:cf:bb:80:da:e8:3b:dc:8c:e0:97:fe:a1:fb:65:c5:3c:e2:0b:be
== Found license ‘S4A-UGMS4JZXQMDE’ providing 1 channels
== Found total of 1 G.729 licenses
== Registered translator ‘g729tolin’ from format g729 to slin, cost 1
== Registered translator ‘lintog729’ from format slin to g729, cost 5
codec_g729a.so => (Digium G.729 Annex A Codec (optimized for i686_32))
== Registered application 'Flash’
app_flash.so => (Flash channel application)
== Registered file format iLBC, extension(s) ilbc


CLI> Executing [s@skypeincoming:1] Answer(“Skype/rexesbposolutions-084159e8”, “”) in new stack
– Executing [s@skypeincoming:2] Wait(“Skype/rexesbposolutions-084159e8”, “5”) in new stack
– Executing [s@skypeincoming:3] GotoIfTime(“Skype/rexesbposolutions-084159e8”, "9:00-18:00|mon-fri|
|*?sky|s|1") in new stack
– Goto (sky,s,1)
– Executing [s@sky:1] Playback(“Skype/rexesbposolutions-084159e8”, “enter”) in new stack
– <Skype/rexesbposolutions-084159e8> Playing ‘enter’ (language ‘en’)
[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x4 (ulaw)
[Dec 29 17:27:14] WARNING[4997]: file.c:147 ast_stopstream: Unable to restore format back to 4
– Executing [s@sky:2] Queue(“Skype/rexesbposolutions-084159e8”, “markq|t|||900”) in new stack
– Started music on hold, class ‘default’, on Skype/rexesbposolutions-084159e8
[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x40 (slin)
[Dec 29 17:27:14] WARNING[4997]: res_musiconhold.c:251 ast_moh_files_next: Unable to open file ‘/var/lib/asterisk/moh/manolo_camp-morning_coffee’: No such file or directory
– Stopped music on hold on Skype/rexesbposolutions-084159e8
[Dec 29 17:27:14] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
[Dec 29 17:27:14] WARNING[4997]: res_musiconhold.c:204 moh_files_release: Unable to restore channel ‘Skype/rexesbposolutions-084159e8’ to format ‘2’
– Playing periodic announcement
[Dec 29 17:27:34] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
– <Skype/rexesbposolutions-084159e8> Playing ‘queue’ (language ‘en’)
[Dec 29 17:27:43] WARNING[4997]: channel.c:3106 set_format: Unable to find a codec translation path from 0x100 (g729) to 0x2 (gsm)
[Dec 29 17:27:43] WARNING[4997]: file.c:147 ast_stopstream: Unable to restore format back to 2
== Spawn extension (sky, s, 2) exited non-zero on ‘Skype/rexesbposolutions-084159e8’
[Dec 29 17:27:43] NOTICE[4997]: core.cpp:2133 sfa_call_hangup: ending call

Thanks in Advance

With Regards

Vijay Goyal (Software Engineer VOIP)
Alliance Infotech Private Limited - Mobility,Convenience,Realization