IAX2 working only one way

Hello,

I recently extended our Asterisk setup to use IAX2 soft phones. The one that we are using is idefisk. After initial configuration, I have managed to make it work in one direction. I can call any extension from idefisk. However, when someone calls the extension assigned to my idefisk, the person is immediately routed to voicemail. When I observe Asterisk messages, I see the following error:

Jul 18 18:20:53 WARNING[17724]: channel.c:2538 ast_request: No channel type registered for ’ IAX2’
Jul 18 18:20:53 NOTICE[17724]: app_dial.c:1040 dial_exec_full: Unable to create channel of type ’ IAX2’ (cause 66 - Channel not implemented)

Obviously, I need to add more configuration settings to make this work. However, I am not sure where I must add these settings.

Here are my current settings (for extension 281). I would appreciate if if someone can point me in the right direction.

Thank you in advance for your help.

Pradeep

********** iax.conf *********

[281]
type=friend
username=281
secret=mysecret
context=fromiaxtrusted
host=dynamic
callerid=Pradeep
auth=md5

********* extensions.conf ******

[fromciscophone]
ignorepat => 9
exten => *86,1,Answer()
exten => *86,2,Wait(.5)
exten => *86,3,VoiceMailMain()

exten => 281, 1, Macro(stdexten, IAX2/${EXTEN}) ; Pradeep
exten => _1XX,1,Macro(stdexten,SIP/${EXTEN})

[default]
include => internalextensions

[internalextensions]
exten => 101,1,Macro(stdexten,SIP/101)
exten => 102,1,Macro(stdexten,SIP/102)
blah
exten => 281,1,Macro(stdexten,IAX2/191) ; Pradeep

try loading IAX2 module: load chan_iax2

Thank you for your help.

My understanding was that all modules get loaded automatically unless you specify “noload” in modules.conf. In any case, I have added the following line in modules.conf:

load chan_iax2.so

However, I still get the following error:
Jul 19 00:33:17 NOTICE[4483]: app_dial.c:1040 dial_exec_full: Unable to create channel of type ’ IAX2’ (cause 66 - Channel not implemented)
== Everyone is busy/congested at this time (1:0/0/1)
– Executing VoiceMail(“IAX2/282-2”, “u2/281”) in new stack

Any other idea.

Appreciate your help.

Pradeep

can you post DEBUG entries for the failed load ? you might need to turn on the debug settings in logger.conf.

have you created an iax.conf ? what does it look like ?

Thank you for your help.

I have shown the relevant part of iax.conf in my earlier message. Would you like to see the complete file?

IAX module must be getting loaded as one way communication is working fine. From an IAX soft phone, I am able to make calls. It is just that I am not able to receive calls.

I have a feeling it is just a broken configuration issue.

Appreciate any insight that you may have.

Regards,
Pradeep

Ok. I found the problem. It turns out iax2 module was not getting loaded at all. Here is the error that I get:

Jul 20 09:00:57 WARNING[19280] loader.c: /usr/lib/asterisk/modules/chan_iax2.so: undefined symbol: ast_park_call
Jul 20 09:00:57 WARNING[19280] loader.c: Loading module chan_iax2.so failed!

Who defines ast_park_call?

Thank you in advance for your help.

Pradeep

this maybe features.conf parking

Problem fixed.

IAX2 was getting loaded. I didn’t have to do anything special. However, in my extensions.conf, here is how I had defined my extension:

exten => 281, 1, Macro(stdexten, IAX2/${EXTEN}) ; Pradeep

You see the space between comma and IAX2? Asterisk doesn’t ignore it. It ended up looking for a channel " IAX2" and not “IAX2.” Removing the space solved the problem.

Pradeep