GOOD NEWS Incredible PBX 11 for Elastix 3.0

hecatae

resident hecatae
Joined
Feb 7, 2014
Messages
661
Reaction score
163
Location
Northampton, United Kingdom

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,415
Reaction score
2,736
Thanks for the lesson, smarks. The core show config mappings and realitme load sippeers name_voipms both work. Everything else is empty. I suspect the culprit is in creating any new organization. You get "Organization already exits" regardless of how random the data happens to be. This in turn means Elastix doesn't create dialplan for new organization. I suspect the trunk info works only because I embedded the data in sip.conf first and reloaded Asterisk.

I might add that we couldn't even get extensions to call each other until I noticed that extensions built as part of a user left half the settings out in the Asterisk DB. Once I shoved those entries in there manually (see installer for the code), calls started working at least between the extensions.

Heaven help you if you try to actually delete something. It leaves pieces all over the place in the MySQL tables.

So... things are still a bit of a mess unless I've missed something.
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
Thanks for the lesson, smarks. The core show config mappings and realitme load sippeers name_voipms both work. Everything else is empty. I suspect the culprit is in creating any new organization. You get "Organization already exits" regardless of how random the data happens to be. This in turn means Elastix doesn't create dialplan for new organization. I suspect the trunk info works only because I embedded the data in sip.conf first and reloaded Asterisk.

I might add that we couldn't even get extensions to call each other until I noticed that extensions built as part of a user left half the settings out in the Asterisk DB. Once I shoved those entries in there manually (see installer for the code), calls started working at least between the extensions.

Heaven help you if you try to actually delete something. It leaves pieces all over the place in the MySQL tables.

So... things are still a bit of a mess unless I've missed something.
I believe dialplans for each organization are located in /etc/asterisk/organizations.

Yes, things are kind of scattered all over the place. I have spent the last couple weeks just trying to find all the bits and pieces everywhere.

2 solid days doing nothing but troubleshooting this inbound calling problem. Not getting very far but learning a lot.
 
  • Like
Reactions: wardmundy

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,415
Reaction score
2,736
smarks Keep us posted. I'm going to build a new one from scratch and see if that helps, but I'm not very optimistic in light of what we've seen so far.
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
I think I am narrowing it down. Been fooled before. Inexplicably it will just start working and suddently all the things you though were the root cause prove to not be.

I have inbound calls consistenly working for now. Will re-install and see if it sticks. Pretty sure it will start failing again eventually so this may not be the whole story.

host= must be an IP address. At least right now that is what is happening for me. So there may be something going on with DNS. There may also be some caching that comes in to play so the change that affects it is not noticed right away. Even after a reboot. So I am trying to figure out where all the non-volatile (ie. saved in a directory somewhere) caching is happening.

Anyone know how the asterisk host= DNS mechanism works? As far as I can tell that happens directly in chan_sip.so and is not effected by any config file settings. It doesn't seem to be working because Asterisk appears to be what is rejecting the call when I set host= to a DNS name instead of the IP. It could also have something to do with the way Kamailio is sending to Asterisk

There is also something intermittent going on in Kamailio. That is the one that has me stumped because it just stops working sometimes for no reason and may last for hours or days. Then just starts working again. Reboots etc. don't seem to effect it. Quite often a minor change to the kamailio.cfg file can flip it from working to not working and visa versa. Nothing that could be directly related to the issue though. So I'm thinking it could be a parsing error where Kamailio is not reading the config file quite right sometimes or maybe some information it is caching somewhere.

KAMAILIO DEBUG LOGGING

Seems obvious now but took me half a day to figure out.

If you enable Debugging
#!WITH_DEBUG
The config file sets
log_stderror=yes
Which prevents debug logging to the log file.

To get debug logging in /var/log/kamilio.log you want log_stderror=no and debug=3 or debug=4

If you want to print out the values of pseudovariables to the log files you can insert a line like this in the kamailio.cfg file wherever you want to know the value.
xlog("The value of auth realm pseudovariable at this point is currently $au\n")
 
  • Like
Reactions: wardmundy

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
smarks: host= entry inserted where??

Elastix GUI > PBX > PBX > Trunks > Create/Edit Trunk > Peer Settings

If it still doesn't work then you gotta inspect the SIP packets to determine whether it's Asterisk or Kamailio that is rejecting it. Kamailio rejection SIP packet is "407 Proxy authentication required" and will also show that it's the Kamailio user agent label. Asterisk rejection SIP packet is "401 Unauthorized..." and Asterisk user agent label.

tcpdump -nqt -s 0 -A host xx.xx.xx.xx and port 5060

where xx.xx.xx.xx is the same IP you put in host=

They may be related but I think there are at least 2 problems here. At least one in Kamailio and maybe one in Asterisk.

Also, I am using IP authentication. I think that tends to make a different too. With user/pass authentication where your registration string uses the domain name host=domain name may work in that case.
 
  • Like
Reactions: vic555

wardmundy

Nerd Uno
Joined
Oct 12, 2007
Messages
15,415
Reaction score
2,736
No luck here. Even tried a pure Elastix MT build this morning. No outbound until I copied [voipms] context into sip.conf. No inbound ever. And the [voipms] context gets wiped out with an Elastix reload so it really needs to be in sip_custom.conf.

That pretty much confirms that this is an Elastix issue and not something stupid in the Incredible PBX setup. :innocent:
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
Hi Ward,

I know what you mean about seemingly static settings not showing up in Asterisk. I think that is a feature not a bug. I don't see the trunks show up in "sip show peers" until I actually have a call go through.

I am also using voip.ms. I have never put anything in sip_custom.conf and have seen this work both inbound and outbound using IP and user/pass authentication. So I don't think it's majorly broken. Maybe something simple like a permissions problem or a syntax error somewhere.

This is unusual in that sometimes it works and sometimes it doesn't. I am still working on it.
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
From the asterisk wiki

Realtime SIP friends

The SIP realtime objects are users and peers that are loaded in memory when needed, then deleted. This means that Asterisk currently can't handle voicemail notification and NAT keepalives for these peers. Other than that, most of the functionality works the same way for realtime friends as for the ones in static configuration.
https://wiki.asterisk.org/wiki/display/AST/Realtime Database Configuration

Elastix MT enables realtime caching which I believe solves the NAT keepalives and voicemail notification situation. So once a call goes through or a subscription occurs it is loaded into memory from the database and caching keeps it there until you reboot or reload asterisk.

I am still trying to track down all the root causes of inbound not working. I found one but I think there may be more.
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
I am pretty sure I found the root cause of inbound not working. With ip authentication you can get around it by using host=ip instead of fqdn.

With user/pass I haven't fully found a way around it yet other than editing the mysql database directly.

To test if you are having this problem first thing to do with user/pass authenticated trunks is make the Peer name the same as the username. ElastixMT uses the Peer Settings> "Name" field instead of "username" field for authenticating SIP trunks. That probably needs to be fixed in their code.

The other problem with user/pass authenticated trunks is that it's trying to also verify the the incoming IP but it's not done the same way as for IP authentication. For user/pass the host= value is not used. Another thing that probably needs to be fixed in ElastixMT somehow.

You can test if that is your problem by editing /etc/kamailio/kamailio.cfg around line # 440

Change
modparam("auth_db", "use_domain", 1)
to
modparam("auth_db", "use_domain", 0)
service kamailio restart
That disables multidomain so if you have more than one organization it might make things wonky. It's just for testing. If you do that + make your trunk Peer Settings > "Name" value your authentication username then your username/pass trunk should work.

Also don't forget to put in the Registration string
 

hecatae

resident hecatae
Joined
Feb 7, 2014
Messages
661
Reaction score
163
Location
Northampton, United Kingdom
getting incredible pbx for elastix 3.0 working on 32 bit:

change

Code:
line 91 centos=x86_64 to i686
line 317 change x86_64 to i386
line 435 change to http://li.nux.ro/download/nux/misc/el6/i386/knock-server-0.5-7.el6.nux.i686.rpm
does it work, well...

fetching repo.xml for i386 fails, as it's not in the repo see http://repo.elastix.org/elastix/3/ instead there are both i386 and i686 repos?

I hope you can all see the screenshot below, incrediblepbx for elastix 3.0 running on centos 6.4 i686

 
  • Like
Reactions: vic555

tritron

Member
Joined
May 26, 2013
Messages
76
Reaction score
5
I tried to register my provider voipms on my sub account but the elastix mt does not register
 

smarks

Guru
Joined
Jan 7, 2015
Messages
116
Reaction score
26
Does anyone know what the status of this project is? I'm kind of confused about the Elastix organization in general. Things seem to run at a snails pace over there and then suddenly without any warning you may get an update after several months of absolutely no visible progress.

Right now the Elastix MT project is like that. It is broken to the point where it is not usable at all. However, most of the problems are fixable with relatively minor updates. Even so, there have been absolutely no updates whatsoever in many months. So we have stopped putting any time into it because it is starting of looking like abandonware to us. Hope we are wrong about that.
 

vic555

Member
Joined
Aug 24, 2014
Messages
76
Reaction score
14
Abandonware.....?, great analogy. We put out a call for discussion on the use and merits of the MT, 3.0, 4.0 (Beta), Platform on DSL reports, and the response was nil. So perhaps, if 4.0 MT is released, and it actually works for the uninitiated, e.g. the non Spanish speaking and technology limited throngs, the level of interest could change.
 

hecatae

resident hecatae
Joined
Feb 7, 2014
Messages
661
Reaction score
163
Location
Northampton, United Kingdom
if you run through the elastix forums they are quite bare, there are insightful posts like this one http://forum.elastix.org/viewtopic.php?f=140&t=130198

Code:
Try run this script.
 
/usr/sbin/elastix-setup-kamailio-rtpproxy
 
 
Go through and check that it is setting the IP address correctly in /etc/kamailio/kamailio-mhomed-elastix.cfg and /etc/sysconfig/rtpproxy-multi
and this one http://forum.elastix.org/viewtopic.php?f=3&t=129165#p137105

Code:
Hello,
I had same issue, I spend a lot of time for checking. The problem was that kamailio wanted authentification for incoming calls even if in Elastix 3.0 tried to change a lot of parameters for insecure etc. But as I suppose these parameters are only for asterisk not kamailio. I also tried to look at settings of kamailio, but I didnt find nothing. But that I tried to do an upgrade and after a while it started to work, but there are some bugs after upgrade, so I describe steps how to:
Login to SSH:
1. before update save to your pc file from /var/www/elastixdir/asteriskconf/elastix_pbx.conf
2. do "yum update" - takes long time to proceed
3. do "reboot"
4. After reboot you cannot connect to management WEB it says error connection to DB.
5. login to SSH again
6. find the file : /var/www/elastixdir/asteriskconf/elastix_pbx.conf
7. check it with file saved in step one - you should correct the DBPASSWORD, MGPASSWORD, maybe more.
8. you are done.
 
After these steps should work the SIP Trunk inbound calls without 407 Authentification required.
each suggests the November release was broken for inbound calls, my current favourite thread is this one: http://forum.elastix.org/viewtopic.php?f=143&t=129986
 

hecatae

resident hecatae
Joined
Feb 7, 2014
Messages
661
Reaction score
163
Location
Northampton, United Kingdom
I'm going to try the build yourself from here: http://pbxinaflash.com/community/index.php?threads/gotcha-free-pbx-elastixmt-gui.17055/ seeing as centos 6.7 was released yesterday.
result:

Code:
Incredible PBX 11.13-02 for Elastix 3.0  
                                                                                                                                             
                                                                                                Asterisk: UP      Apache: UP    MySQL: UP    
                                                                                                 Postfix: UP    IPtables: UP      SSH: UP    
                                                                                                LAN port: UP    Fail2Ban: DN   Webmin: UP    
                                                                                                Kamailio: DN   IAX Modem: DN  HylaFax: UP    
                                                                                                                                             
                                                                                                RAM:160MB   CentOS 6.7 (i686)   Disk:5.6G    
                                                                                                                                             
                                                                                                Asterisk 11.13.0          Elastix MT: 3.0    
                                                                                                                                             
                                                                                                Private IP: 168.235.149.68                    
                                                                                                                                             
                                                                                                 Public IP: 168.235.149.68                    
                                                                                                                                             
                                                                                                System Time: Sat Nov 21 16:54:52 EST 2015    
                                                                                                                                             
                                                                                                                                             
                                                                                                                  <  OK  >
Off to check Kamailio

If anyone has a working elastix mt incrediblepbx still, could you let me know what's meant to be on these lines in the kamailio config file?

service kamailio start
Not starting : invalid configuration file!

0(5355) ERROR: <core> [sr_module.c:587]: load_module(): ERROR: load_module: could not find module <tls> in </usr/lib/kamailio/modules/>
0(5355) : <core> [cfg.y:3409]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 313, column 12-19: failed to load module
0(5355) ERROR: <core> [sr_module.c:587]: load_module(): ERROR: load_module: could not find module <websocket> in </usr/lib/kamailio/modules/>
0(5355) : <core> [cfg.y:3409]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 341, column 12-25: failed to load module
0(5355) ERROR: <core> [modparam.c:167]: set_mod_param_regex(): set_mod_param_regex: No module matching <tls> found
0(5355) : <core> [cfg.y:3412]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 513, column 51: Can't set module parameter
0(5355) ERROR: <core> [modparam.c:167]: set_mod_param_regex(): set_mod_param_regex: No module matching <websocket> found
0(5355) : <core> [cfg.y:3412]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 551, column 47: Can't set module parameter
0(5355) INFO: <core> [ppcfg.c:79]: pp_subst_add(): ### added subst expression: /ASTERISKIP/127.0.0.1/
0(5355) INFO: <core> [ppcfg.c:79]: pp_subst_add(): ### added subst expression: /ASTERISKPORT/5080/
0(5355) ERROR: <core> [cfg.y:3273]: yyparse(): cfg. parser: failed to find command ws_handle_handshake (params 0)
0(5355) : <core> [cfg.y:3412]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 1275, column 41: unknown command, missing loadmodule?

ERROR: bad config file (5 errors)


one must be tls, another must be websocket so did a yum install kamailio-tls and kamailio-websocket.

Yes hosted on cloudatcost
 
Last edited:

Members online

PIAF 5 - Powered by 3CX

Forum statistics

Threads
22,572
Messages
138,932
Members
14,674
Latest member
gnordli