FreeSWITCH package for pfSense 1.2.1 and 2.0 released. PBX or Proxy
-
Thanks for the tip on restarting the external, I had been restarting the entire freeswitch service.
To be sure that I didn't have any bad characters I deleted the gateway and added it back.
The problem appears to be only when I try to add 7 digit dialing, it works with 10 digit for example.
I still get this when I try to do 7 digit dialing:
(sofia/gateway/${default_gateway}/1${default_areacode}4881718) 2008-12-19 08:54:31 [DEBUG] switch_core_session.c:1253 switch_core_session_execute_application() sofia/internal/2009@adrian.is-a-geek.org Expanded String bridge(sofia/gateway//19024881718)
Okay - deleted all the link2voip gateways. Found some left over in config.xml? Lots from my previous testing. Deleted those manually. Added it back in with 7 digit dialing. I was pretty sure it would work at this point but it did not.
Then verified it looked good to me:
<config> <dialplanincludeid>{CAB6ADA6-413F-592C-7A86-9A52359389AD}</dialplanincludeid> <tag>condition</tag> <fieldtype>destination_number</fieldtype> <fielddata>^(\d{7})$</fielddata> </config> <config><dialplanincludeid>{CAB6ADA6-413F-592C-7A86-9A52359389AD}</dialplanincludeid> <tag>action</tag> <fieldtype>bridge</fieldtype> <fielddata>sofia/gateway/sip.ca1.link2voip.com/1902$1</fielddata></config>
What's up; it all looks fine but the log shows it is dropping the gateway somewhere.
Ahhhhh…..
Found the fix I think.After testing, the problem only seemed to be with 7 digit dialing. Found there was a 01_example.com.xml in /usr/local/freeswitch/conf/dialplan/default with this bit of code for an example 7 digit dialing:
<extension name="local.example.com"><condition field="${toll_allow}" expression="local"><condition field="destination_number" expression="^(\d{7})$"><action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"><action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"><action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"></action></action></action></condition></condition></extension>
I think this is what was tripping up my 7 digit dialing; I deleted it and everything is gravy.
Maybe I'm not understanding how some of the configs flow through; but it seems like there were some 'old' gateways still showing in the config.xml that I couldn't see in the gui as well as this example code - should I have been able to see this in the gui under the dialplan?
Thanks again for all the help. Sorry if these are newbie type mistakes on my part.
-
mcrane,
I've been meaning to mention this. I believe this example file should be removed from you package as it takes precedence over a user's dialplan configuation.
After testing, the problem only seemed to be with 7 digit dialing. Found there was a 01_example.com.xml in /usr/local/freeswitch/conf/dialplan/default with this bit of code for an example 7 digit dialing:
<extension name="local.example.com"><condition field="${toll_allow}" expression="local"><condition field="destination_number" expression="^(\d{7})$"><action application="set" data="effective_caller_id_number=${outbound_caller_id_number}"><action application="set" data="effective_caller_id_name=${outbound_caller_id_name}"><action application="bridge" data="sofia/gateway/${default_gateway}/1${default_areacode}$1"></action></action></action></condition></condition></extension>
I think this is what was tripping up my 7 digit dialing; I deleted it and everything is gravy.
Maybe I'm not understanding how some of the configs flow through; but it seems like there were some 'old' gateways still showing in the config.xml that I couldn't see in the gui as well as this example code - should I have been able to see this in the gui under the dialplan?
Thanks again for all the help. Sorry if these are newbie type mistakes on my part.
-
I had to modify that file to get dialing to work for me…but only 10digit. And adrianhensler, it seems that freeswitch package upgrades sometimes leave behind those entries, in my experience.
-
The following are changes made on 19 December 2008 in version 0.5.3. These changes remove some of the conflicting configs that are found in the default config. Clear up the public.xml setting that has made it harder for new installs. These changes clear up the configuration issues that have been discussed in the forum up to this point.
Details:
Delete the example default config files they are not needed with the GUI
/usr/local/freeswitch/conf/dialplan/default/01_example.com.xml
/usr/local/freeswitch/conf/dialplan/public/00_inbound_did.xmlConvert extensions tab from pfsense package XML code to PHP. This cleared up a problem that was showing up on pfSense 2.0.
Public tab change 'deprecated xml' to 'public.xml'. This provides access to a file that may be useful in advanced cases.
For new installs public.xml a setting that was giving trouble inside the public.xml at /usr/local/freeswitch/conf/dialplan/public.xml
has been changed from this
<anti-action application=""export"" data=""domain_name=${sip_req_host}"/">to this
-->The setting was overriding the correct value and causing the issue reported earlier in this thread.
For those that had an earlier version than 0.5.3 you need to go to the 'public' tab then click on the 'public.xml' button. At that link you will see a text area box which should have the content of the attached file. For new installs this will auto populate for older installs the text will need to be manually copied back into the text area.
public.xml.txt</anti-action>
-
For some reason, I had to manually copy these files over:
from the cvstrac:
exec("cp /tmp/freeswitch_extensions.tmp /usr/local/www/freeswitch/freeswitch_extensions.php"); unlink_if_exists("/tmp/freeswitch_extensions.tmp"); exec("cp /tmp/freeswitch_extensions_edit.tmp /usr/local/www/freeswitch/freeswitch_extensions_edit.php"); unlink_if_exists("/tmp/freeswitch_extensions_edit.tmp");
I'm almost sure it's a fluke on my system only; can't see anything that would have stopped this from copying those files over. I just mention it in case someone else runs into the 404 file not found on these files.
-
To avoid 404s on files for this package, I always have to uninstall the package and reinstall…dunno why
-
Thanks to tusc there should now be mod_shout support which provides support for mp3 audio.
Also this new build of FreeSWITCH enables mod_siren, and mod_celt both exciting new codecs.
mod_celt (58kHz audio)
http://freeswitch.org/node/155mod_siren (32 kHz and 64 kHz)
http://freeswitch.org/node/153 -
You guys are on fire.
-
FreeSWITCH package 0.5.6 Fixed an issue with the mod_shout mp3 now really does work.
Music on hold directory. Can simply add mp3 or wav files to this directory to change the music on hold.
/usr/local/freeswitch/sounds/music8000If SSH is enabled under System -> Advanced -> Enable Secure Shell then you can use SFTP to the folder above. Firefox add on FireFTP works pretty well with SFTP.
Added package info pointing to:
http://doc.pfsense.org/index.php/FreeSWITCHFree Christmas Music.
http://feelslikechristmas.com/contemporary-instrumental-christmas-music-mp3s.htmlInstrumental.
http://expelledthemovie.com/digitaldownloads.phpPolitical. Ron Paul theme song
http://www.aimeeallen.com/RPsong.html -
Found a bug in the IVR (Auto Attendant). Its now fixed in version 0.5.7. If you will be using the IVR then please upgrade to 0.5.7 or higher.
-
mcrane, thx for your great work!
I need a litte help.
How to connect a softphone from WAN to a fs at my LAN. (soft – NAT -- WAN -- NAT -- LAN)
A B
I think, in A use stun, in B nated ports 5060-5090 and rtp port to my pfsense
In A, sjphone in htc touch pda
Rules in Wan / Lan permit traffic SIP / RTP / STUN
No firewall in OS Ubuntu1.- i create extension 1000, 1001 in context default
2.- i create extension 1003 in context public
3.- step 1 ok, calls ok, sofphones can register, but 1003 can't register to fs
I view freeswitch wiki, but i can't find the solution
there is not much information in the web
I modify the external profile, the parameters of sip_port,... no register
I create doublenat.xml... no register
At logs no info from attempts to connect.
Any idea?Un saludo from Spain!
-
Here's some thoughts.
I think they should all be context of default.
Make an extension 1003 in default and try it on the lan. When you know it works; apply the same configuration to your softphone.
Also; check the logs immediately after it registers (or fails to register) and see if there are any clues there.
I hope this helps; I am sure someone else will correct me if I am wrong.
-
For extensions that are on the LAN or the WAN 'User Context' should be set to 'default'. It is there as an option for advanced cases. If you have extensions that are coming in from the WAN the only additional thing you need to do this is to set an allow rule to open up the SIP TCP/UDP 5060 - 5090 and RTP UDP 16384 - 32768 ports for the WAN interface.
In the past week Sloan Miller started documentation of the FreeSWITCH package at:
http://doc.pfsense.org/index.php/FreeSWITCHOver the last three days I've helped add additional documentation to the wiki. Today I've added info on using Video calling between xlite extensions.
http://doc.pfsense.org/index.php/FreeSWITCH#Video -
I’ve built a TFTP pfSense package for pfSense 1.2.1 and higher. Still need to implement the DHCP TFTP option. I have some code to do that will likely carefully add it to the package.
-
I've got some code for the DHCP option I can PM you if you're interested
-
Sure pm it to me. I will compare it with have I have and use the best combination of both.
Best Regards!
-
If you need a TFTP Server for your phone configuration then install the pfSense TFTP package The following adds a TFTP DHCP option. The manual patch is designed for pfSense 1.2.1 full release.
Download the two attached files and then remove the .txt file extension. Then you should have one file named services.inc and the other named services_dhcp.php.
Go to the PFSense Menu then Diagnostics -> Command and upload both files. The files will upload to the /tmp/ directory.
Run the following shell commands to copy the files to the correct location.
cp /tmp/services.inc /etc/inc/services.inc
cp /tmp/services_dhcp.php /usr/local/www/services_dhcp.phpYou can now go to Services -> DHCP Server and set the TFTP Server address.
-
Great work on the tftp, I don't personally require it at this time, but for people who need it this will be a lifesaver.
Are there a list of steps I can follow to get an IVR working?
I added the IVR in the gui with extension 5002 but I'm not sure what else needs to be done. It doesn't answer or even recognize the extension 5002 I gave the new IVR.
I tried looking at the example IVR but isn't making any sense yet. Not looking for hand-holding, just a quick push in the direction of the correct place to start would be great.
-
[IVR Instructions]
When you create an IVR of 5002 you it will automatically add a dialplan entry on the 'Dialplan' tab for the extension. First you need to make some recordings for the IVR to use. You make the recordings on the 'Rec' tab by calling 732673 (record) it will ask for a pin number which is the 'admin pin' that is defined on the 'Settings' tab. After you make the recording edit it to give it an intuitive name. Then the recording will be available show up in the menu on the 'IVR' tab. The 'timeout' is how long to wait for key presses (DTMF) after the recording has finished playing. The 'Recording Action' drop down is the recording that will be played if the 'Javascript Condition' is true. If the condition is false then it will play the recording that is chosen in the Recording Anti-Action. For most systems the 'Javascript Condition' will a good start and work for most systems. It checks to see if the time is between 9-5pm, and that is Monday - Friday, and not one of the predefined holidays.
Now you need to add the auto attendant 'options.' Start with the 'Action' options first. If my recording said the following: "Thank you for calling press 1 for Sales 2 for Support 3 to hear the options again." Then the first 'Option Number' would be '1' set the drop down 'Type' to 'extension' then the destination could be the extension for the Sales person. If you have more than one Sales person you might want to setup a group and transfer the call to the group. For more information on the groups look at the wiki at: http://doc.pfsense.org/index.php/FreeSWITCH click on 'Save.' Now add the 2. The third option to hear the options again can be done with 'Type' extension and a 'Destination' of 5002. There is special option number 't' it is what will happen when the timeout is reached. The timeout could be redirected back to 5002 or to a specific extension, or omitted and the call will end. With the default condition the 'Action' options are 'Office Hours' and the Anti-Action options are the 'After Hours'. However you can replace the 'Javascript Condition' with the following: condition=true; in this case the Anti-Action options will never be used. This is useful for sub IVR menus such as a Directory. A directory would not make sense to use a time condition. You can access sub IVR by creating an option such as 4 and then creating an IVR at extension 5003. Point the option 4 to use a Type of 'extension' then '5003'.
Calls are directed to the 'Anti-Action' options when the condition does not match. The process for adding them is the same as the 'Action' options.
After setting up the IVR and you have called it at extension 5002 then you can direct inbound calls to it from the 'Public' tab.
Let me know if you have any further questions.
Best Regards,
Mark J Crane -
New updates to the FreeSWITCH package 0.5.8.3 and 0.5.8.4.
1. Exposed more paths on the pages that were not showing a file system path.
2. Fixed 'realm' on the gateways tab so that it saves the realm correctly.
3. Clarified wording on the extensions edit page to give more direct instructions on how to enable 3 digit extensions.