FreeSWITCH package for pfSense 1.2.1 and 2.0 released. PBX or Proxy



  • Wow, mcrane - you just flat-out rock! Thanks for the info.



  • I'm not keeping up well with update changes so iced98lx has volunteered to update the pfSense FreeSWITCH wiki with the changes
    http://doc.pfsense.org/index.php/FreeSWITCH#Change_Log_.2F_Revision_History

    Also commits to the package can be monitored here.
    https://rcs.pfsense.org/users/mcrane

    and here

    https://rcs.pfsense.org/projects/pfsense-packages



  • I just did a fresh install of pfsense 1.2.2. After which I installed freeswitch I looked at the service and it was not started. I attempted to start it which responded telling me it was started, however the icon showed stopped. I went into /usr/local/freeswitch/bin and tried to start it manually. The following is the error I get.

    ./freeswitch

    Error: stacksize 240 is too large: run ulimit -s 240 or run ./freeswitch -waste.
    auto-adjusting stack size for optimal performance….
    Cannot lock pid file /usr/local/freeswitch/log/freeswitch.pid.

    This is likely because I'm not running 1.2.3-RC1? Is there a way to get this to run on 1.2.2? I tried 1.2.3-RC1 fresh install but it ran horribly on my system.



  • @scsikid:

    ./freeswitch

    Error: stacksize 240 is too large: run ulimit -s 240 or run ./freeswitch -waste.
    auto-adjusting stack size for optimal performance….
    Cannot lock pid file /usr/local/freeswitch/log/freeswitch.pid.

    This is likely because I'm not running 1.2.3-RC1?

    Yes I guarantee that is the reason.

    @scsikid:

    Is there a way to get this to run on 1.2.2? I tried 1.2.3-RC1 fresh install but it ran horribly on my system.

    Current package requires 1.2.3 or pfsense 2.0. The reason why is that FreeSWITCH is compiled for freebsd 7.2. In order to get FreeSWITCH to work good on 1.2.x it has to be compiled for the version of freebsd that pfsense uses.



  • Thanks mcrane, I updated pfSense to 1.2.3-RC3 and it runs. However it looks like when running the fs_cli command via ssh it doesnt work. Here is the error I get.

    ./fs_cli

    [ERROR] libs/esl/fs_cli.c:652 main() Error Connecting [Connection Error]

    However in the GUI the status shows things correctly.

    Any tips on this? Maybe I'm just missing a package?



  • pfsense by default blocks communication on 127.0.0.1 which is what fs_cli tries by default instead tell it to use your lan ip address.

    ./fs_cli -H 192.168.1.1



  • thanks mcrane



  • Having an issue. I use dual wan, whenever my DSL IP is renewed the freeswitch service stops working. Looking at the system logs it shows the following.

    php: : pfSense package system has detected an ip change 67.55.21.X -> 69.172.115.X … Restarting packages.

    After this my pfsense service shows stopped. Any tips as to why?



  • Sorry here is another line with more relevant information. "missing required dependencies" any idea which?
    php: : pfSense package system has detected an ip change 69.172.115.239 -> 67.55.20.155 … Restarting packages.
    php: : The FreeSWITCH package is missing required dependencies and must be reinstalled.



  • What version of the pfsense freeswitch package are you using? freeswitch or freeswitch dev



  • I'm using freeswitch 0.9.5. On 1.2.3-RC3.



  • Hello everybody,
        I have been using pfSense for many years, just recently I discovered the freeswitch package, so I built a new test server and bought a couple of polycom 601 phones. I started with a fresh install of  1.2.3-RC3 and installed the tftp server for my polycom phones. I also downloaded pangolin soft phone. Then I proceeded to install the freeswitch 0.9.5 package. I set up 2 extensions using the GUI and had both the softphone and the 601 register with the server. but I get a message "Temporarily unavailable 480" from the soft phone.

    Then I did anothher complete re-install of pfsense, and loaded the development version, this time I was able to get the phones to talk to each other, had music on hold and voice mail would take messages, but it would not connect to the voice mail, * anything would not work. so I used the instructions earlier in this post to remove freeswitch and tried to install freeswitch again. but I am back to the orignal problem, I am attaching a portion of the log in case it will help.

    2009-10-13 05:29:31.434068 [DEBUG] sofia.c:4549 IP 192.168.3.199 Rejected by acl "domains". Falling back to Digest auth.
    2009-10-13 05:29:31.498052 [DEBUG] sofia.c:4549 IP 192.168.3.199 Rejected by acl "domains". Falling back to Digest auth.
    2009-10-13 05:29:31.498052 [NOTICE] switch_channel.c:602 New Channel sofia/lan/1003@192.168.3.1 [178d6062-b9b7-de11-97fc-00a0cc5a11e3]
    2009-10-13 05:29:31.498052 [DEBUG] sofia.c:5196 Setting NAT mode based on rfc1918.auto
    2009-10-13 05:29:31.498052 [DEBUG] sofia.c:3210 Channel sofia/lan/1003@192.168.3.1 entering state [received][100]
    2009-10-13 05:29:31.498052 [DEBUG] sofia.c:3217 Remote SDP:
    v=0
    o=- 607600082 607600082 IN IP4 192.168.189.1
    s=http://www.portsip.com
    c=IN IP4 192.168.189.1
    t=0 0
    m=audio 21492 RTP/AVP 0 8 18 101
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-15
    a=ptime:20
    m=video 40360 RTP/AVP 34 125
    a=rtpmap:34 H263/90000
    a=fmtp:34 CIF=2
    a=rtpmap:125 H264/90000
    a=fmtp:125 profile-level-id=42e015

    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G7221:115:32000:20]
    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G7221:107:16000:20]
    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G722:9:8000:20]
    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[PCMU:0:8000:20]
    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:2039 Set Codec sofia/lan/1003@192.168.3.1 PCMU/8000 20 ms 160 samples
    2009-10-13 05:29:31.498052 [DEBUG] sofia_glue.c:3041 Set 2833 dtmf payload to 101
    2009-10-13 05:29:31.498052 [DEBUG] sofia.c:3376 (sofia/lan/1003@192.168.3.1) State Change CS_NEW -> CS_INIT
    2009-10-13 05:29:31.498052 [DEBUG] switch_core_session.c:933 Send signal sofia/lan/1003@192.168.3.1 [BREAK]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:397 (sofia/lan/1003@192.168.3.1) Running State Change CS_INIT
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:480 (sofia/lan/1003@192.168.3.1) State INIT
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:83 sofia/lan/1003@192.168.3.1 SOFIA INIT
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:111 (sofia/lan/1003@192.168.3.1) State Change CS_INIT -> CS_ROUTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_session.c:933 Send signal sofia/lan/1003@192.168.3.1 [BREAK]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:480 (sofia/lan/1003@192.168.3.1) State INIT going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:397 (sofia/lan/1003@192.168.3.1) Running State Change CS_ROUTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:483 (sofia/lan/1003@192.168.3.1) State ROUTING
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:130 sofia/lan/1003@192.168.3.1 SOFIA ROUTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:78 sofia/lan/1003@192.168.3.1 Standard ROUTING
    2009-10-13 05:29:31.505791 [INFO] mod_dialplan_xml.c:252 Processing 1003->1000 in context public
    Dialplan: sofia/lan/1003@192.168.3.1 parsing [public->unloop] continue=false
    Dialplan: sofia/lan/1003@192.168.3.1 Regex (PASS) [unloop] ${unroll_loops}(true) =~ /^true$/ break=on-false
    Dialplan: sofia/lan/1003@192.168.3.1 Regex (FAIL) [unloop] ${sip_looped_call}() =~ /^true$/ break=on-false
    Dialplan: sofia/lan/1003@192.168.3.1 parsing [public->outside_call] continue=true
    Dialplan: sofia/lan/1003@192.168.3.1 Absolute Condition [outside_call]
    Dialplan: sofia/lan/1003@192.168.3.1 Action set(outside_call=true)
    Dialplan: sofia/lan/1003@192.168.3.1 parsing [public->call_debug] continue=true
    Dialplan: sofia/lan/1003@192.168.3.1 Regex (FAIL) [call_debug] ${call_debug}(false) =~ /^true$/ break=never
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:114 (sofia/lan/1003@192.168.3.1) State Change CS_ROUTING -> CS_EXECUTE
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_session.c:933 Send signal sofia/lan/1003@192.168.3.1 [BREAK]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:483 (sofia/lan/1003@192.168.3.1) State ROUTING going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:397 (sofia/lan/1003@192.168.3.1) Running State Change CS_EXECUTE
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:490 (sofia/lan/1003@192.168.3.1) State EXECUTE
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:173 sofia/lan/1003@192.168.3.1 SOFIA EXECUTE
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:151 sofia/lan/1003@192.168.3.1 Standard EXECUTE
    EXECUTE sofia/lan/1003@192.168.3.1 set(outside_call=true)
    2009-10-13 05:29:31.505791 [DEBUG] mod_dptools.c:748 sofia/lan/1003@192.168.3.1 SET [outside_call]=[true]
    2009-10-13 05:29:31.505791 [NOTICE] switch_core_state_machine.c:179 Hangup sofia/lan/1003@192.168.3.1 [CS_EXECUTE] [NORMAL_CLEARING]
    2009-10-13 05:29:31.505791 [DEBUG] switch_channel.c:1683 Send signal sofia/lan/1003@192.168.3.1 [KILL]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_session.c:933 Send signal sofia/lan/1003@192.168.3.1 [BREAK]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:490 (sofia/lan/1003@192.168.3.1) State EXECUTE going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:397 (sofia/lan/1003@192.168.3.1) Running State Change CS_HANGUP
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:433 (sofia/lan/1003@192.168.3.1) State HANGUP
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:338 Channel sofia/lan/1003@192.168.3.1 hanging up, cause: NORMAL_CLEARING
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:414 Responding to INVITE with: 480
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:46 sofia/lan/1003@192.168.3.1 Standard HANGUP, cause: NORMAL_CLEARING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:433 (sofia/lan/1003@192.168.3.1) State HANGUP going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:475 (sofia/lan/1003@192.168.3.1) State Change CS_HANGUP -> CS_REPORTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_session.c:933 Send signal sofia/lan/1003@192.168.3.1 [BREAK]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:397 (sofia/lan/1003@192.168.3.1) Running State Change CS_REPORTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:607 (sofia/lan/1003@192.168.3.1) State REPORTING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:53 sofia/lan/1003@192.168.3.1 Standard REPORTING, cause: NORMAL_CLEARING
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:607 (sofia/lan/1003@192.168.3.1) State REPORTING going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:410 (sofia/lan/1003@192.168.3.1) State Change CS_REPORTING -> CS_DESTROY
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_session.c:1067 Session 3 (sofia/lan/1003@192.168.3.1) Locked, Waiting on external entities
    2009-10-13 05:29:31.505791 [NOTICE] switch_core_session.c:1085 Session 3 (sofia/lan/1003@192.168.3.1) Ended
    2009-10-13 05:29:31.505791 [NOTICE] switch_core_session.c:1087 Close Channel sofia/lan/1003@192.168.3.1 [CS_DESTROY]
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:559 (sofia/lan/1003@192.168.3.1) State DESTROY
    2009-10-13 05:29:31.505791 [DEBUG] mod_sofia.c:255 sofia/lan/1003@192.168.3.1 SOFIA DESTROY
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:60 sofia/lan/1003@192.168.3.1 Standard DESTROY
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:559 (sofia/lan/1003@192.168.3.1) State DESTROY going to sleep
    2009-10-13 05:29:31.505791 [DEBUG] switch_core_state_machine.c:559 (sofia/lan/1003@192.168.3.1) State DESTROY going to sleep



  • I see the problem. You are registering to the lan profile. The default config is expecting you to register to the internal profile which is by default listening on the wan ip address. You can either set a domain (use dynamic dns if you have a dynamic ip address) or if you have a static ip address on the wan  you can use that.

    If you don't prefer that method then the next easiest approach is to delete the lan profile and set the internal profile to use the ip address for the lan. Then you can register to the lan ip address and it you still are able to get around NAT issues because the external profile will pickup inbound calls on the WAN ip address where it is listening. For more information about this method take a look at: http://wiki.freeswitch.org/wiki/Multi_home_tutorial



  • Thank you for the quick responce, Let me see if I understand you correctly. to do this:

    @mcrane:

    You can either set a domain (use dynamic dns if you have a dynamic ip address) or if you have a static ip address on the wan  you can use that.

    I need to set phones to connect to the wan port. (which is currently dynamic, but I am going to change it to fixed).

    or I can

    @mcrane:

    delete the lan profile and set the internal profile to use the ip address for the lan. Then you can register to the lan ip address and it you still are able to get around NAT issues because the external profile will pickup inbound calls on the WAN ip address where it is listening. For more information about this method take a look at: http://wiki.freeswitch.org/wiki/Multi_home_tutorial

    I tried using the http://wiki.freeswitch.org/wiki/Multi_home_tutorial, but I did not know what to do about the lan profile. and the items ext-rtp-ip & ext-sip-ip said that the only allowed values were "Auto" and "Auto-NAT"

    also I could not find how to set the folowing
    "

    <domain name="192.168.0.199">"

    So I am going to try to do the first Item.

    Thanks again for the help.

    (update)

    I fixed the external IP to 192.168.2.210, and registered my soft phone to that address. It did not work. I am attaching another part of the log.

    2009-10-13 19:43:37.245207 [DEBUG] sofia.c:4549 IP 192.168.3.199 Rejected by acl "domains". Falling back to Digest auth.
    2009-10-13 19:43:37.307211 [DEBUG] sofia.c:4549 IP 192.168.3.199 Rejected by acl "domains". Falling back to Digest auth.
    2009-10-13 19:43:37.307211 [NOTICE] switch_channel.c:602 New Channel sofia/internal/1003@192.168.2.210 [d2aa42b3-30b8-de11-a406-00a0cc5a11e3]
    2009-10-13 19:43:37.307211 [DEBUG] sofia.c:5196 Setting NAT mode based on rfc1918.auto
    2009-10-13 19:43:37.315472 [DEBUG] sofia.c:3210 Channel sofia/internal/1003@192.168.2.210 entering state [received][100]
    2009-10-13 19:43:37.315472 [DEBUG] sofia.c:3217 Remote SDP:
    v=0
    o=- 658846300 658846300 IN IP4 192.168.189.1
    s=http://www.portsip.com
    c=IN IP4 192.168.189.1
    t=0 0
    m=audio 20452 RTP/AVP 0 8 18 101
    a=rtpmap:0 PCMU/8000
    a=rtpmap:8 PCMA/8000
    a=rtpmap:18 G729/8000
    a=fmtp:18 annexb=no
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-15
    a=ptime:20
    m=video 41682 RTP/AVP 34 125
    a=rtpmap:34 H263/90000
    a=fmtp:34 CIF=2
    a=rtpmap:125 H264/90000
    a=fmtp:125 profile-level-id=42e015

    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G7221:115:32000:20]
    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G7221:107:16000:20]
    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[G722:9:8000:20]
    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:3081 Audio Codec Compare [PCMU:0:8000:20]/[PCMU:0:8000:20]
    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:2039 Set Codec sofia/internal/1003@192.168.2.210 PCMU/8000 20 ms 160 samples
    2009-10-13 19:43:37.315472 [DEBUG] sofia_glue.c:3041 Set 2833 dtmf payload to 101
    2009-10-13 19:43:37.315472 [DEBUG] sofia.c:3376 (sofia/internal/1003@192.168.2.210) State Change CS_NEW -> CS_INIT
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:933 Send signal sofia/internal/1003@192.168.2.210 [BREAK]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:397 (sofia/internal/1003@192.168.2.210) Running State Change CS_INIT
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:480 (sofia/internal/1003@192.168.2.210) State INIT
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:83 sofia/internal/1003@192.168.2.210 SOFIA INIT
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:111 (sofia/internal/1003@192.168.2.210) State Change CS_INIT -> CS_ROUTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:933 Send signal sofia/internal/1003@192.168.2.210 [BREAK]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:480 (sofia/internal/1003@192.168.2.210) State INIT going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:397 (sofia/internal/1003@192.168.2.210) Running State Change CS_ROUTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:483 (sofia/internal/1003@192.168.2.210) State ROUTING
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:130 sofia/internal/1003@192.168.2.210 SOFIA ROUTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:78 sofia/internal/1003@192.168.2.210 Standard ROUTING
    2009-10-13 19:43:37.315472 [INFO] mod_dialplan_xml.c:252 Processing 1003->1000 in context public
    Dialplan: sofia/internal/1003@192.168.2.210 parsing [public->unloop] continue=false
    Dialplan: sofia/internal/1003@192.168.2.210 Regex (PASS) [unloop] ${unroll_loops}(true) =~ /^true$/ break=on-false
    Dialplan: sofia/internal/1003@192.168.2.210 Regex (FAIL) [unloop] ${sip_looped_call}() =~ /^true$/ break=on-false
    Dialplan: sofia/internal/1003@192.168.2.210 parsing [public->outside_call] continue=true
    Dialplan: sofia/internal/1003@192.168.2.210 Absolute Condition [outside_call]
    Dialplan: sofia/internal/1003@192.168.2.210 Action set(outside_call=true)
    Dialplan: sofia/internal/1003@192.168.2.210 parsing [public->call_debug] continue=true
    Dialplan: sofia/internal/1003@192.168.2.210 Regex (FAIL) [call_debug] ${call_debug}(false) =~ /^true$/ break=never
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:114 (sofia/internal/1003@192.168.2.210) State Change CS_ROUTING -> CS_EXECUTE
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:933 Send signal sofia/internal/1003@192.168.2.210 [BREAK]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:483 (sofia/internal/1003@192.168.2.210) State ROUTING going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:397 (sofia/internal/1003@192.168.2.210) Running State Change CS_EXECUTE
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:490 (sofia/internal/1003@192.168.2.210) State EXECUTE
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:173 sofia/internal/1003@192.168.2.210 SOFIA EXECUTE
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:151 sofia/internal/1003@192.168.2.210 Standard EXECUTE
    EXECUTE sofia/internal/1003@192.168.2.210 set(outside_call=true)
    2009-10-13 19:43:37.315472 [DEBUG] mod_dptools.c:748 sofia/internal/1003@192.168.2.210 SET [outside_call]=[true]
    2009-10-13 19:43:37.315472 [NOTICE] switch_core_state_machine.c:179 Hangup sofia/internal/1003@192.168.2.210 [CS_EXECUTE] [NORMAL_CLEARING]
    2009-10-13 19:43:37.315472 [DEBUG] switch_channel.c:1683 Send signal sofia/internal/1003@192.168.2.210 [KILL]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:933 Send signal sofia/internal/1003@192.168.2.210 [BREAK]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:490 (sofia/internal/1003@192.168.2.210) State EXECUTE going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:397 (sofia/internal/1003@192.168.2.210) Running State Change CS_HANGUP
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:433 (sofia/internal/1003@192.168.2.210) State HANGUP
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:338 Channel sofia/internal/1003@192.168.2.210 hanging up, cause: NORMAL_CLEARING
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:414 Responding to INVITE with: 480
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:46 sofia/internal/1003@192.168.2.210 Standard HANGUP, cause: NORMAL_CLEARING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:433 (sofia/internal/1003@192.168.2.210) State HANGUP going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:475 (sofia/internal/1003@192.168.2.210) State Change CS_HANGUP -> CS_REPORTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:933 Send signal sofia/internal/1003@192.168.2.210 [BREAK]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:397 (sofia/internal/1003@192.168.2.210) Running State Change CS_REPORTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:607 (sofia/internal/1003@192.168.2.210) State REPORTING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:53 sofia/internal/1003@192.168.2.210 Standard REPORTING, cause: NORMAL_CLEARING
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:607 (sofia/internal/1003@192.168.2.210) State REPORTING going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:410 (sofia/internal/1003@192.168.2.210) State Change CS_REPORTING -> CS_DESTROY
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_session.c:1067 Session 7 (sofia/internal/1003@192.168.2.210) Locked, Waiting on external entities
    2009-10-13 19:43:37.315472 [NOTICE] switch_core_session.c:1085 Session 7 (sofia/internal/1003@192.168.2.210) Ended
    2009-10-13 19:43:37.315472 [NOTICE] switch_core_session.c:1087 Close Channel sofia/internal/1003@192.168.2.210 [CS_DESTROY]
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:559 (sofia/internal/1003@192.168.2.210) State DESTROY
    2009-10-13 19:43:37.315472 [DEBUG] mod_sofia.c:255 sofia/internal/1003@192.168.2.210 SOFIA DESTROY
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:60 sofia/internal/1003@192.168.2.210 Standard DESTROY
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:559 (sofia/internal/1003@192.168.2.210) State DESTROY going to sleep
    2009-10-13 19:43:37.315472 [DEBUG] switch_core_state_machine.c:559 (sofia/internal/1003@192.168.2.210) State DESTROY going to sleep

    2nd update.

    I followed the steps outlined in the Multi Home Tutorial. and had the same problem. the phone would register but not connect.

    I am at a loss on what to do now.

    The Doc</domain>



  • @DocLove:

    I need to set phones to connect to the wan port. (which is currently dynamic, but I am going to change it to fixed).

    Not wan port you would connect to a dynamic domain name using dynamic dns or the wan ip address.

    @DocLove:

    or I can

    @mcrane:

    delete the lan profile and set the internal profile to use the ip address for the lan. Then you can register to the lan ip address and it you still are able to get around NAT issues because the external profile will pickup inbound calls on the WAN ip address where it is listening. For more information about this method take a look at: http://wiki.freeswitch.org/wiki/Multi_home_tutorial

    @DocLove:

    I tried using the http://wiki.freeswitch.org/wiki/Multi_home_tutorial, but I did not know what to do about the lan profile. and the items ext-rtp-ip & ext-sip-ip said that the only allowed values were "Auto" and "Auto-NAT"

    As I said before and meant it "delete the lan profile" I will be removing it from the default config in the future. Its easier to no use the lan profile which really is just a copy of the internal profile with the ip addresses set to the lan ip address. Other option is to delete the internal profile and rename the lan profile to internal.xml that way internal will be listening to the lan ip address as stated in the Multi-home_tutorial.

    @DocLove:

    I fixed the external IP to 192.168.2.210, and registered my soft phone to that address. It did not work. I am attaching another part of the log.

    Not enough details. "I fixed the external IP to 192.168.2.210" on what profile? If you did this to the internal profile and you are trying to do the multi-home tutorial then that is correct if you did it to the external profile then change it back to the default.

    After you making changes to the sip profiles you need to restart FreeSWITCH.



  • I am sorry that I was not clear earlier.

    First my setup
    WWW –> 1st pfsense box <-- private (192.168.2.xxx) --> pfsense w freeswtich <-- Test (192.168.3.1) --> phones

    here are the things I have done.

    1st attempt
    #1 set my WAN IP port to fixed in pfsense (192.168.2.210)
    #2 set my soft phone to register to 192.168.2.210 (The phones registered and showed up in the status section)
    #3 Tried to make a call to extension 1000, the soft phone tells me that it is "Temporally Unavailable 480).

    2nd attempt
    #1 set my WAN IP port to fixed in pfsense (192.168.2.210)
    #2 deleted the lan.xml profile
    #3 rebooted freeswitch.
    #4 set my soft phone to register to 192.168.2.210 (The phones registered and showed up in the status section)
    #5 Tried to make a call to extension 1000, the soft phone tells me that it is "Temporally Unavailable 480).

    3rd attempt
    #1 set my WAN IP port to fixed in pfsense (192.168.2.210)
    #2 edited the internal.xml file as described in the multi-home tutorial (192.168.3.1 is my phone lan address)
        <param name="rtp-ip" value="192.168.3.1">
        <param name="sip-ip" value="192.168.3.1">
        <param name="ext-rtp-ip" value="192.168.3.1">
        <param name="ext-sip-ip" value="192.168.3.1">
    #3 rebooted freeswitch.
    #4 set my soft phone to register to 192.168.2.210 (The phone would not register)
    #5 set my soft phone to register to 192.168.3.1 (The phone registered and showed up in the status section)
    #6 Tried to make a call to extension 1000, the soft phone tells me that it is "Temporally Unavailable 480).
    #7 edited the file /usr/local/freeswitch/conf/directory/default.xml
      <domain name="192.168.3.1">#8 rebooted freeswitch.
    #9 set my soft phone to register to 192.168.2.210 (The phone would not register)
    #10 set my soft phone to register to 192.168.3.1 (The phone would not register got a forbidden error)
    #11 did some reading and found a place in the vars tab to change the domain
    #12 edited the file in the vars tab
      <x-pre-process cmd="set" data="domain=192.168.3.1">#13 rebooted freeswitch.
    #14 set my soft phone to register to 192.168.2.210 (The phone would not register)
    #15 set my soft phone to register to 192.168.3.1 (The phone registered and showed up in the status section)
    #16 Tried to make a call to extension 1000, the soft phone tells me that it is "Temporally Unavailable 480).

    I have tried to follow your instructions as close as I was able, please let me know what I am doing wrong. this is driving me nuts.

    The Doc.</x-pre-process></domain>



  • Okay now I have a much better understanding of your setup. And multi-home isn't needed because your pfsense freeswitch machine is in the lan. Therefore the default installation would work fine. And the internal and external profiles would automatically pickup the internal LAN ip address which would be correct in this case.

    Its not great to double nat the phones so using the phones behind a second firewall may not work too good.
    Instead I would likely do this:
    www -> pfsense box -> LAN
    LAN -> pfSense FreeSWITCH and the phones

    On the pfSense FreeSWITCH server I would open the voip ports or turn off the firewall on pfSense FreeSWITCH server. Its your choice which one.

    Firewall Rules.
    SIP and RTP ports that would need to be enabled on the WAN rules http://doc.pfsense.org/index.php/FreeSWITCH#Firewall.

    or

    Turn off the firewall.
    System -> Advanced -> Disable Firewall -> check the box and press 'save'.

    Having said that your issues is not likely your FreeSWITCH setup. The issue is probably your polycom phone setup. To find out where the problem is for sure setup two xlite soft phones then call between them if that works then that idenitifies the problem.
    You can verify each soft phone's setup is correct by calling *9999 which is the music on hold.

    Using two soft phones that are known to work gets you a second opinion and actually gets you somewhere with your trouble shooting.



  • I would like to setup the system as multi-homed. this is because after I get it working I will be installing this at a my work, where pfsense will be the firewall.

    you are right, if I was going to connect the phones to the 192.168.2.1 network I do not need multi host. but I am connecting them to 192.168.3.1. I will try to enable the SIP and RTP ports and see what that does.

    Thanks.
      The Doc



  • SIP uses two connections SIP to control the call setup and tear down and RTP to transfer the media whether it is audio or video. SIP's split design is nice because the RTP can be passed up to the upstream provider thus skipping the middle man. However this design does not work easily with NAT. Double NAT increases the complexity. The pfSense FreeSWITCH package binds to the WAN interface which puts the phone system outside of NAT.

    But the problem you experienced is definitely not a NAT issue and not likely a pfSense FreeSWITCH issue.



  • Running PFSense 1.2.3-RELEASE

    Having an issue when WAN IP address changes, even with an all LAN config.

    php: : pfSense package system has detected an ip change x.x.x.x -> x.x.x.x … Restarting packages.
    php: : The FreeSWITCH package is missing required dependencies and must be reinstalled.
    php: : Resyncing configuration for all packages.

    The service wont restart automatically, I have to go and restart it manually.


Locked