in Technology

Asterisk, Fax and more

Alright, I am spending too much time with Asterisk these days. It’s fun to work with it, but it can be quite frustrating at other times. My latest problem is faxes. I am using spanDSP and the RxFax and TxFax applications. Everything compiles alright, but the whole Asterisk crashes when either of the applications are invoked from the dialplan. I am surprised it crashes the whole application – I did not expect it to do that. I have already read a lot about compiling fax support, using AsterFax etc, but am not making any headway.

Then Mitul told me to wait till October. He said Asterisk has problems with Fax. And the Fax over IP (T.38) feature will solve the issue, when it comes up with Asterisk 1.4. (though I am not sure about it as the detailed report on ISP Planet is not very clear about it)
And Sujeet sent me to New Asterisk Set to Ring – an article on InternetNews talking about the new features coming up in the next version. Fax is certainly there, and even Jabber and Google support is coming.

On the other hand, I was thrilled to learn that the Gizmo project now supports Asterisk. You can now use your Gizmo softphone to login to your Asterisk PBX system. That means we can now have a reliable Asterisk client for the Mac. Even SJPhone hasn’t worked well with me lately. The other options on Mac are simply unusable (also because I am on an Intel Mac)

We are also setting up Wildfire from JiveSoftware as our Jabber based instant messaging system now. Figuring out the pam_mysql integration now.

The other issues we have faced on the Asterisk installation so far:

  • First, the ISDN line crossover connection to the Digium E110P card. We finally figured it with Mitul’s help.
  • We used TrixBox initially, then did a fresh Ubuntu installed and compiled Asterisk from scratch. FreePBX adds too many configuration files and makes things complex.
  • Mitul gave sample configuration files – I tried to understand them and make them work to our situation. Finally gave up and started afresh. Later, added parts from those samples to our files.
  • The CallerID was creating problems initially. We would get the call in Asterisk, and it would not do a Direct Inward Dialing to the extension because it was searching for the whole number as extension – even with a “22” prefix for the city. I added a pattern matching for this and extracted the last 4 digits of the number to arrive at the extension number.
  • The patterns in the dial plans, I couldn’t find a way to have a wildcard at the start of the pattern. If I put a wildcard at the beginning it would match any number. E.g. a pattern like _.67192000 would match any number – not just 67192000 or 2267192000 or 912267192000.
  • Then we struggled with authentication. We wanted to have a single login/password for all services enterprise wide. We used pam_mysql and all our authentication worked on that. There is a real time mysql integration module with Asterisk but we did not want to increase the load on our servers. So we wrote up a PHP script to generate the SIP and Voicemail configuration files from our db. The extensions.conf would be written once and would not need to be changed. Even in authentication, we faced numerous issues – first realization was that we can not use numeric extension numbers and string usernames.
  • Another thing was a hack to dial local phone numbers when the caller ID showed the city code (22) in front of them. Just took the last 8 digits of the number and dialed out in such cases.
  • It was a bit tricky to test the dialplan. Initially it was going in the “welcome. please dial the extension number…” prompt every now and then. Had to verify the flow for various extensions, and add extensions for timeout and hangup to resolve this.
  • The voicemail’s email notification requires that you have sendmail on the same server as Asterisk. Had to setup Exim on the box for this and use our main mail server as smarthost.
  • You will not get incoming phones if you do not “register with the proxy”.
  • On some lines, we experienced no voice for a while in conversations. The voice would just disappear. Finally figured it was an issue with the network cables.
  • We have setup different access levels of outgoing calls to different people. Local / Mobile / STD / ISD. This was very easy to accomplish via “context” in the sip configuration file. We added a field in the MySQL db for the access, and placed the context based on this field in our PHP generated sip config file.
  • When people complained about “Line is busy” errors at the start of the day, mostly the problem was that the ISDN router was not started! (we are still to push these things behind a UPS and run them 24/7)
  • Programmers may face some initial problems working with software phones, but they will get used to it quickly!
  • We still haven’t been able to figure out how to capture sound from our Intel 945 dual core motherboards under Ubuntu. This sucks!

Write a Comment

Comment

  1. * We still haven’t been able to figure out how to capture sound from our Intel 945 dual core motherboards under Ubuntu. This sucks!

    Yes! It was reported by many people (with laptop). Each kernel gives different result. I am now looking at 2.6.15-27 !

  2. Here’s the easiest way to get faxing working with asterisk…

    AdminsParadise VoIP Phone and Fax Server…
    it integrates Avantfax, hylafax, sambafax, and iaxmodem automagically…
    It currently runs asterisk 1.4.2

    In addition you can perform scheduled conferencing.. The grandstream video phones work.. Delegated administration works… and the gui is a tweaked out freepbx so all the features you love in freepbx work and it has the cool accordian menus of the (feature lacking)AsteriskNow.

  3. I tried to use asterisk with Gizmo projects. I am able to login successfully. Call also get connected but no voice from either side and call gets disconnected after some time.