Problem with Freeswitch package



  • I've got freeswitch running on pfsense 2.0.1. My network setup is a simple WAN (pppoe with static IP) and LAN (192.168.2.x). Freeswitch binds to the WAN address. I can register SIP devices on it from the LAN using the WAN address and from the WAN. Calls work fine from the WAN, but on the LAN the SIP client receives no sound.

    So what I have tried to debug so far:

    I've set the firewall to log EVERYTHING on the LAN and WAN Interface. LAN -> WAN interface address doesn't show up?? but I can't figure out why.. LAN -> LAN interface address shows up and LAN -> External Address show up. And anything originating from the WAN interface address doesn't seem to show up.

    So that didn't really end up helping me as I couldn't even log the SIP traffic or see if the RTP traffic was being blocked.

    The only other thing I've noticed is that from the LAN I can ping the WAN interface IP address, but if from within pfsense I ping a LAN address using the WAN interface (diagnostics -> ping), it times out. So I am thinking because freeswitch is bound to the WAN interface IP (Which is what I want so I can access it externally), the RTP traffic when sending can't get to the clients on the LAN.

    I've checked firewalls on clients and I'm pretty sure they aren't the issue.

    Any help would be appreciated. It would be great if freeswitch could bind to all interfaces, but I haven't see that yet!



  • change freeswitch to listen on lan and create a nat to manage it from wan



  • Yes that is an option, but I wanted to be able to access it from the same IP whether inside or outside the network. Also I was having some trouble running it behind a NAT, but I may be able iron out those issues.

    I've done some further packet captures on pfsense and a local client.

    These are captures from the LAN interface on pfsense.

    This is the SIP traffic, which correctly responds on the LAN interface back to the SIP client.

    23:14:21.568533 IP 192.168.2.123.5060 > 120.146.228.51.5060: UDP, length 1430
    23:14:21.569010 IP 120.146.228.51.5060 > 192.168.2.123.5060: UDP, length 371

    This is the RTP traffic from the client to pfsense/freeswitch.

    23:14:21.576339 IP 192.168.2.123.5054 > 120.146.228.51.18488: UDP, length 62
    23:14:21.615120 IP 192.168.2.123.5054 > 120.146.228.51.18488: UDP, length 62
    23:14:21.636939 IP 192.168.2.123.5054 > 120.146.228.51.18488: UDP, length 62

    There is no RTP data going from the server to the client. Running a packet capture on the WAN interface picks up the outgoing RTP traffic from freeswitch, but alas it never makes it to the client.

    It is odd, the internal profile for freeswitch has this written on it… (I am using fusionpbx frontend)

    "By default the Internal profile binds to the WAN IP which is accessible to the internal network. A rule can be set from PFSense -> Firewall -> Rules -> WAN to the the WAN IP for port 5060 which enables phones register from outside the network."

    This would make me think that my setup should work!...



  • Can't you setup freeswitch to listen on all interfaces?

    sip does not like nat very much.

    On asterisk there are specific options to set nat but I don't know how it works on freeswitch



  • Yes I am trying to avoid NAT :). Freeswitch has some NAT options, but I am a bit of a noob at it.

    You can't set a single profile to bind to multiple interfaces, but I can set up multiple profiles, 1 on each interface. So I could have an internal one and an external one. But it would still mean I couldn't use the same IP inside and outside the network, which I don't see why I shouldn't be able to?



  • Check rules on lan and maybe disabling  Block bogon networks could help



  • Tried that, no joy :(. Also tried blocking and unblock private networks etc from WAN.

    Any other ideas? I might try putting another interface on, bind it to that and then see if it works. At least then I'll know if it is a problem with the WAN interface specifically, or something else…



  • So I made another interface, LAN2 with IP 192.168.3.1. I bound freeswitch to that IP and it works correctly from the LAN, I can register and get audio etc. So it must just be an issue with using it with WAN. Maybe coz WAN is pppoe ? or maybe coz WAN-LAN is NAT'd ?

    In any case, I think it still should work, so any more ideas on what to try?
    I guess I should try it on a second WAN interface. and see if it is all WAN interfaces or just the 1 that is causing the issue.



  • Change your outbound to manual.



  • Ok, I've narrowed it down a little further.

    Changing NAT Outbound to manual didn't work. Either did deleting all the NAT rules after chaning to manual (And successfully disabling any internet access, btw changing to auto again didn't fix it, I had to manually create some rules)

    I created another WAN interface and set it up, and it exhibits the same behaviour… so I conclude that the issue only happens on WAN interfaces. So on this WAN interface I changed the gateway to "none" (I guess that means it isn't really a WAN interface anymore) and it works perfectly! So this is where the issue is happening.

    Likewise from pfsense diagnostics -> ping, I can ping LAN addresses from this "WAN" interface without a gateway...



  • Any ideas anyone?

    I'm just wondering if I should persist with this or what I am trying to do is unsupported or not supposed to work…

    Thanks!



  • I will work, just take a look on docs.pfsense.org or this forum for manual outbound nat.

    Change to manual and only create outbound nat rules for traffic leaving wan interface.



  • I've got it set to manual and this is the only rule I have in there… Even If I delete all rules it still doesn't work...

    Interface Source Source Port Destination Destination Port NAT Address NAT Port Static Port Description

    WAN  192.168.2.0/24 * * * * *
    NO

    The only things I can do to get it to work are:

    Remove the gateway on the WAN interface
    Disable all packet filtering

    Either of which are no good for my setup :(



  • if LAN is 192.168.2.0/24, outbound nat is fine, check lan rules now.

    You must permit traffic fom LAN net to any on LAN interface.



  • I got frustrated and just allowed everything to everywhere on the firewall.

    Both LAN and WAN interface are * * * * * * * as the first rule

    Still no go…

    It still seems to mimic the behaviour of pfSense diagnostics -> ping

    I wonder if I should try installing pfSense 1.2.3 and see if it works on that.



  • I really doubt that issue has anything to do with your NAT or firewall rules, it's somewhere in your freeswitch or phone config. No idea where, I don't know a whole lot about freeswitch, but that's in general not the kind of symptoms you'd have with any NAT or firewall rule issues in that type of deployment.

    1.2.3 and 2.0 will be the same in that regard.



  • updated subject and moved into the packages board, not sure if that will help it get better attention, but it's a freeswitch package issue.



  • I've set up pfSense 1.2.3 and installed the freeswitch-dev package and it seems to be working how I want it. Likewise pinging a LAN address from the WAN interface also works. I might try setting up a fresh pfSense 2.0.1 install and seeing if it works. Maybe I just messed up my networking config somehow.



  • Ok. Set up pfSense 2.0.1 again from scratch. Freeswitch package doesn't work on 2.0.1, so I installed fusionPBX again. Same issue as originally.

    So to summarise my findings.

    pfSense 1.2.3 with freeswitch-dev package worked.
    pfSense 2.0.1 with FusionPBX didn't work (meaning cannot hear audio on the internal network, apart from that works fine).

    I still think the issue is with pfSense. In 1.2.3 you can ping internal hosts from the WAN interface, in 2.0.1 you cannot. Also in 2.0.1 it works fine if you disable packet filtering, or take the gateway off the WAN interface.

    Anyway, I guess I will multi-home freeswitch and then access it internally from the internal IP and externally from the external IP. bah. I like pfSense too much to replace it for something else I can run freeswitch on how I want.



  • Thought I would chime in and mention that on a fresh PFSense (x86) 2.01 install, I was able to follow the steps on Mark's PBXFusion Wiki site and other than the svn issue that marcelloc helped me with to synch PBXFusion updates, the FreeSwitch manual install per the directions works for all intents and purposes on PFSense 2.01…the 32 bit variant. I'm using DynDNS on the PFSense 2.01 and phones on the LAN and WAN work. Not sure if this has any bearing on what you were doing or maybe it's enough of an incentive to keep trying. I'm using Aastra SIP phones, slightly older models and the Linux Twinkle SIP client as a softphone, no VLANs or anything beyond an out of the box setup on the network side of things.
    All the best.
    Shaun



  • @sdudley:

    Thought I would chime in and mention that on a fresh PFSense (x86) 2.01 install, I was able to follow the steps on Mark's PBXFusion Wiki site and other than the svn issue that marcelloc helped me with to synch PBXFusion updates, the FreeSwitch manual install per the directions works for all intents and purposes on PFSense 2.01…the 32 bit variant. I'm using DynDNS on the PFSense 2.01 and phones on the LAN and WAN work. Not sure if this has any bearing on what you were doing or maybe it's enough of an incentive to keep trying. I'm using Aastra SIP phones, slightly older models and the Linux Twinkle SIP client as a softphone, no VLANs or anything beyond an out of the box setup on the network side of things.
    All the best.
    Shaun

    I was also able to get it to install a couple of weeks ago… I have had it running on 2.01 and also 2.1... I have a question for you, how were you and marcelloc able to get the updates to work? I haven't spend anytime on it trying it tho.. It was more to see if it would work on my box... some reason I would rather have a VoIP run on another box then my firewall..



  • @Cino:

    I have a question for you, how were you and marcelloc able to get the updates to work?

    All these updates are related to cyrrus-sasl and kerberos missing libraries. I've first tried to include sasl + tls to postfix(not done yet), then I saw freeradius with same issues as well subversion.

    @Cino:

    I haven't spend anytime on it trying it tho.. It was more to see if it would work on my box… some reason I would rather have a VoIP run on another box then my firewall..

    freeswitch or asterisk could be a layer7 voip filtering daemon/proxy/gateway, just like squid, varnish and postfix do with it's own protocols.

    I agree that a sip nat or sip proxy could do the job, it's just more options for admins  :)



  • @Cino:

    @sdudley:

    Thought I would chime in and mention that on a fresh PFSense (x86) 2.01 install, I was able to follow the steps on Mark's PBXFusion Wiki site and other than the svn issue that marcelloc helped me with to synch PBXFusion updates, the FreeSwitch manual install per the directions works for all intents and purposes on PFSense 2.01…the 32 bit variant. I'm using DynDNS on the PFSense 2.01 and phones on the LAN and WAN work. Not sure if this has any bearing on what you were doing or maybe it's enough of an incentive to keep trying. I'm using Aastra SIP phones, slightly older models and the Linux Twinkle SIP client as a softphone, no VLANs or anything beyond an out of the box setup on the network side of things.
    All the best.
    Shaun

    I was also able to get it to install a couple of weeks ago… I have had it running on 2.01 and also 2.1... I have a question for you, how were you and marcelloc able to get the updates to work? I haven't spend anytime on it trying it tho.. It was more to see if it would work on my box... some reason I would rather have a VoIP run on another box then my firewall..

    Cino, Here's the whole saga on getting svn installed in order to synch the fusionPBX updates.
    http://forum.pfsense.org/index.php/topic,41582.0.html

    Shaun



  • Scratch that, jinxed by kartweel. After a reboot of the pfsense 2.01 hardware a minute ago, I now have no internal audio either…no IVR, or the internal FreePBX default recordings. They act like the are working, in other words one can press the appropriate keys for extensions after guessing at what stage the IVR is at and it appears to dial but no audible ring back...almost like one way audio which appears to be a common SIP/VoIP phone issue with a number of possible solutions all of them seemingly network related.



  • @sdudley:

    Scratch that, jinxed by kartweel. After a reboot of the pfsense 2.01 hardware a minute ago, I now have no internal audio either…no IVR, or the internal FreePBX default recordings. They act like the are working, in other words one can press the appropriate keys for extensions after guessing at what stage the IVR is at and it appears to dial but no audible ring back nor ringing on the destination phone.

    Are you using freeswitch or asterisk? Freepbx is ready for freeswitch?
    Can you check log files to see if you find any erros?



  • It's Freeswitch, sorry too much PBXing over the last few months. System log on pfsense shows only the following error when I 'cat' the log from the shell.
    apinger: Error while feeding rrdtool: Broken pipe
    Is this something that could be related to the audio issue…seems a bit of a stretch to think it could be?
    I'm not using the rrdtool, it came along as part of our effort to get the subversion client running.

    Freeswitch appears to store it's log in in the /usr/local/freeswitch/log directory when following the FusionPBX howto for PFSense.

    Here's a non TLS sample setup and tear down from the freeswitch log. The scenario played out in the log below was when a call was placed from the softphone at extension 1010 calling an Aastra IP phone at extension 1001. Both devices are on the inside or LAN interface side and have an address within the 192.168.1.0/24. I've substituted the word "DynDNS_WAN_Interface" for any reference to the DynDNS supported WAN interface on the pfsense box. Would prefer to obscure the WAN interface IP and not invite unwanted attention.

    2012-01-20 04:28:03.423960 [DEBUG] mod_sofia.c:241 sofia/internal/1010@DynDNS_WAN_Interface SOFIA EXECUTE
    2012-01-20 04:28:03.423960 [DEBUG] switch_core_state_machine.c:192 sofia/internal/1010@DynDNS_WAN_Interface Standard EXECUTE
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(call_direction=local)
    2012-01-20 04:28:03.423960 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [call_direction]=[local]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-spymap/1010/14e25a0d-4943-e111-be90-004063d6739c)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-last_dial/1010/1001)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-last_dial/global/14e25a0d-4943-e111-be90-004063d6739c)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(RFC2822_DATE=Fri, 20 Jan 2012 04:28:03 -0500)
    2012-01-20 04:28:03.446632 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [RFC2822_DATE]=[Fri, 20 Jan 2012 04:28:03 -0500]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(dialed_extension=1001)
    2012-01-20 04:28:03.458709 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [dialed_extension]=[1001]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface export(dialed_extension=1001)
    2012-01-20 04:28:03.458709 [DEBUG] switch_channel.c:1078 EXPORT (export_vars) [dialed_extension]=[1001]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface bind_meta_app(1 b s execute_extension::dx XML features)
    2012-01-20 04:28:03.458709 [INFO] switch_ivr_async.c:3107 Bound B-Leg: *1 execute_extension::dx XML features
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface bind_meta_app(2 b s record_session::/usr/local/freeswitch/recordings/archive/2012/Jan/20/14e25a0d-4943-e111-be90-004063d6739c.wav)
    2012-01-20 04:28:03.471251 [INFO] switch_ivr_async.c:3107 Bound B-Leg: *2 record_session::/usr/local/freeswitch/recordings/archive/2012/Jan/20/14e25a0d-4943-e111-be90-004063d6739c.wav
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface bind_meta_app(3 b s execute_extension::cf XML features)
    2012-01-20 04:28:03.482364 [INFO] switch_ivr_async.c:3107 Bound B-Leg: *3 execute_extension::cf XML features
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(ringback=%(2000, 4000, 440.0, 480.0))
    2012-01-20 04:28:03.482364 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [ringback]=[%(2000, 4000, 440.0, 480.0)]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(transfer_ringback=local_stream://moh)
    2012-01-20 04:28:03.482364 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [transfer_ringback]=[local_stream://moh]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(call_timeout=30)
    2012-01-20 04:28:03.493575 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [call_timeout]=[30]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(hangup_after_bridge=true)
    2012-01-20 04:28:03.493575 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [hangup_after_bridge]=[true]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(continue_on_fail=true)
    2012-01-20 04:28:03.504783 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [continue_on_fail]=[true]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-call_return/1001/1010)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-last_dial_ext/1001/14e25a0d-4943-e111-be90-004063d6739c)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface set(called_party_callgroup=)
    2012-01-20 04:28:03.515698 [DEBUG] mod_dptools.c:1176 sofia/internal/1010@DynDNS_WAN_Interface SET [called_party_callgroup]=[UNDEF]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface hash(insert/DynDNS_WAN_Interface-last_dial//14e25a0d-4943-e111-be90-004063d6739c)
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface bridge(user/1001@DynDNS_WAN_Interface)
    2012-01-20 04:28:03.515698 [DEBUG] switch_channel.c:1032 sofia/internal/1010@DynDNS_WAN_Interface EXPORTING[export_vars] [dialed_extension]=[1001] to event
    2012-01-20 04:28:03.515698 [DEBUG] switch_ivr_originate.c:1882 Parsing global variables
    2012-01-20 04:28:03.526247 [DEBUG] switch_channel.c:1032 sofia/internal/1010@DynDNS_WAN_Interface EXPORTING[export_vars] [dialed_extension]=[1001] to event
    2012-01-20 04:28:03.526247 [DEBUG] switch_ivr_originate.c:1882 Parsing global variables
    2012-01-20 04:28:03.526247 [DEBUG] switch_event.c:1521 Parsing variable [presence_id]=[1001@DynDNS_WAN_Interface]
    2012-01-20 04:28:03.526247 [NOTICE] switch_channel.c:911 New Channel sofia/internal/sip:1001@192.168.1.14:5060 [fbbc750d-4943-e111-be90-004063d6739c]
    2012-01-20 04:28:03.526247 [DEBUG] mod_sofia.c:4496 (sofia/internal/sip:1001@192.168.1.14:5060) State Change CS_NEW -> CS_INIT
    2012-01-20 04:28:03.526247 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:03.526247 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_INIT
    2012-01-20 04:28:03.537248 [DEBUG] switch_core_state_machine.c:401 (sofia/internal/sip:1001@192.168.1.14:5060) State INIT
    2012-01-20 04:28:03.537248 [DEBUG] mod_sofia.c:85 sofia/internal/sip:1001@192.168.1.14:5060 SOFIA INIT
    2012-01-20 04:28:03.537248 [DEBUG] sofia_glue.c:2402 sip:1001@192.168.1.14:5060 Setting proxy route to sofia/internal/sip:1001@192.168.1.14:5060
    2012-01-20 04:28:03.537248 [DEBUG] mod_sofia.c:125 (sofia/internal/sip:1001@192.168.1.14:5060) State Change CS_INIT -> CS_ROUTING
    2012-01-20 04:28:03.537248 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:03.537248 [DEBUG] switch_core_state_machine.c:401 (sofia/internal/sip:1001@192.168.1.14:5060) State INIT going to sleep
    2012-01-20 04:28:03.537248 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:03.537248 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_ROUTING
    2012-01-20 04:28:03.548251 [DEBUG] switch_channel.c:1840 (sofia/internal/sip:1001@192.168.1.14:5060) Callstate Change DOWN -> RINGING
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_state_machine.c:410 (sofia/internal/sip:1001@192.168.1.14:5060) State ROUTING
    2012-01-20 04:28:03.548251 [DEBUG] mod_sofia.c:148 sofia/internal/sip:1001@192.168.1.14:5060 SOFIA ROUTING
    2012-01-20 04:28:03.548251 [DEBUG] switch_ivr_originate.c:66 (sofia/internal/sip:1001@192.168.1.14:5060) State Change CS_ROUTING -> CS_CONSUME_MEDIA
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_state_machine.c:410 (sofia/internal/sip:1001@192.168.1.14:5060) State ROUTING going to sleep
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_CONSUME_MEDIA
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_state_machine.c:429 (sofia/internal/sip:1001@192.168.1.14:5060) State CONSUME_MEDIA
    2012-01-20 04:28:03.548251 [DEBUG] switch_core_state_machine.c:429 (sofia/internal/sip:1001@192.168.1.14:5060) State CONSUME_MEDIA going to sleep
    2012-01-20 04:28:03.548251 [DEBUG] sofia.c:5174 Channel sofia/internal/sip:1001@192.168.1.14:5060 entering state [calling][0]
    2012-01-20 04:28:33.003726 [DEBUG] switch_channel.c:2800 (sofia/internal/sip:1001@192.168.1.14:5060) Callstate Change RINGING -> HANGUP
    2012-01-20 04:28:33.003726 [NOTICE] switch_ivr_originate.c:3165 Hangup sofia/internal/sip:1001@192.168.1.14:5060 [CS_CONSUME_MEDIA] [NO_ANSWER]
    2012-01-20 04:28:33.003726 [DEBUG] switch_channel.c:2816 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [KILL]
    2012-01-20 04:28:33.003726 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:33.003726 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_HANGUP
    2012-01-20 04:28:33.003726 [NOTICE] switch_ivr_originate.c:2457 Cannot create outgoing channel of type [user] cause: [NO_ANSWER]
    2012-01-20 04:28:33.003726 [DEBUG] switch_ivr_originate.c:3346 Originate Resulted in Error Cause: 19 [NO_ANSWER]
    2012-01-20 04:28:33.003726 [INFO] mod_dptools.c:2810 Originate Failed.  Cause: NO_ANSWER
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface answer()
    2012-01-20 04:28:33.003726 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/sip:1001@192.168.1.14:5060) State HANGUP
    2012-01-20 04:28:33.016798 [DEBUG] mod_sofia.c:460 Channel sofia/internal/sip:1001@192.168.1.14:5060 hanging up, cause: NO_ANSWER
    2012-01-20 04:28:34.050583 [DEBUG] mod_sofia.c:513 Sending CANCEL to sofia/internal/sip:1001@192.168.1.14:5060
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:47 sofia/internal/sip:1001@192.168.1.14:5060 Standard HANGUP, cause: NO_ANSWER
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/sip:1001@192.168.1.14:5060) State HANGUP going to sleep
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:393 (sofia/internal/sip:1001@192.168.1.14:5060) State Change CS_HANGUP -> CS_REPORTING
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_REPORTING
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/sip:1001@192.168.1.14:5060) State REPORTING
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:79 sofia/internal/sip:1001@192.168.1.14:5060 Standard REPORTING, cause: NO_ANSWER
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/sip:1001@192.168.1.14:5060) State REPORTING going to sleep
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_state_machine.c:387 (sofia/internal/sip:1001@192.168.1.14:5060) State Change CS_REPORTING -> CS_DESTROY
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/sip:1001@192.168.1.14:5060 [BREAK]
    2012-01-20 04:28:34.050583 [DEBUG] switch_core_session.c:1349 Session 19 (sofia/internal/sip:1001@192.168.1.14:5060) Locked, Waiting on external entities
    2012-01-20 04:28:34.050583 [NOTICE] switch_core_session.c:1367 Session 19 (sofia/internal/sip:1001@192.168.1.14:5060) Ended
    2012-01-20 04:28:34.050583 [NOTICE] switch_core_session.c:1369 Close Channel sofia/internal/sip:1001@192.168.1.14:5060 [CS_DESTROY]
    2012-01-20 04:28:34.061595 [DEBUG] switch_core_state_machine.c:491 (sofia/internal/sip:1001@192.168.1.14:5060) Callstate Change HANGUP -> DOWN
    2012-01-20 04:28:34.061595 [DEBUG] switch_core_state_machine.c:494 (sofia/internal/sip:1001@192.168.1.14:5060) Running State Change CS_DESTROY
    2012-01-20 04:28:34.061595 [DEBUG] switch_core_state_machine.c:504 (sofia/internal/sip:1001@192.168.1.14:5060) State DESTROY
    2012-01-20 04:28:34.061595 [DEBUG] mod_sofia.c:365 sofia/internal/sip:1001@192.168.1.14:5060 SOFIA DESTROY
    2012-01-20 04:28:34.061595 [DEBUG] switch_core_state_machine.c:86 sofia/internal/sip:1001@192.168.1.14:5060 Standard DESTROY
    2012-01-20 04:28:34.061595 [DEBUG] switch_core_state_machine.c:504 (sofia/internal/sip:1001@192.168.1.14:5060) State DESTROY going to sleep
    2012-01-20 04:28:34.072580 [DEBUG] sofia_glue.c:3094 AUDIO RTP [sofia/internal/1010@DynDNS_WAN_Interface] 72.224.88.59 port 27562 -> 192.168.1.148 port 8000 codec: 8 ms: 20
    2012-01-20 04:28:34.072580 [DEBUG] switch_rtp.c:1642 Starting timer [soft] 160 bytes per 20ms
    2012-01-20 04:28:34.083786 [DEBUG] sofia_glue.c:3357 Set 2833 dtmf send payload to 101
    2012-01-20 04:28:34.083786 [DEBUG] sofia_glue.c:3363 Set 2833 dtmf receive payload to 101
    2012-01-20 04:28:34.083786 [DEBUG] mod_sofia.c:740 Local SDP sofia/internal/1010@DynDNS_WAN_Interface:
    v=0
    o=FreeSWITCH 1327024152 1327024153 IN IP4 72.224.88.59
    s=FreeSWITCH
    c=IN IP4 72.224.88.59
    t=0 0
    m=audio 27562 RTP/AVP 8 101
    a=rtpmap:8 PCMA/8000
    a=rtpmap:101 telephone-event/8000
    a=fmtp:101 0-16
    a=silenceSupp:off - - - -
    a=ptime:20
    a=sendrecv

    2012-01-20 04:28:34.083786 [DEBUG] switch_core_session.c:724 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:34.083786 [DEBUG] switch_channel.c:3135 (sofia/internal/1010@DynDNS_WAN_Interface) Callstate Change RINGING -> ACTIVE
    2012-01-20 04:28:34.083786 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:34.083786 [NOTICE] mod_dptools.c:1043 Channel [sofia/internal/1010@DynDNS_WAN_Interface] has been answered
    2012-01-20 04:28:34.116586 [DEBUG] sofia.c:5174 Channel sofia/internal/1010@DynDNS_WAN_Interface entering state [completed][200]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface sleep(1000)
    2012-01-20 04:28:34.116586 [DEBUG] switch_ivr.c:190 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:34.381514 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:34.381514 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:34.381514 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:34.403511 [DEBUG] sofia.c:5174 Channel sofia/internal/1010@DynDNS_WAN_Interface entering state [ready][200]
    EXECUTE sofia/internal/1010@DynDNS_WAN_Interface voicemail(default DynDNS_WAN_Interface 1001)
    2012-01-20 04:28:35.241395 [DEBUG] switch_ivr_play_say.c:67 No language specified - Using [en]
    2012-01-20 04:28:35.329394 [DEBUG] switch_ivr_play_say.c:244 Handle play-file:[voicemail/vm-person.wav] (en:en)
    2012-01-20 04:28:35.329394 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:36.684163 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:36.805211 [DEBUG] switch_ivr_play_say.c:244 Handle say:[1001] (en:en)
    2012-01-20 04:28:36.805211 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:39.019820 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:39.119829 [DEBUG] switch_ivr_play_say.c:244 Handle play-file:[voicemail/vm-not_available.wav] (en:en)
    2012-01-20 04:28:39.119829 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:40.100643 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:40.221624 [DEBUG] switch_ivr_play_say.c:67 No language specified - Using [en]
    2012-01-20 04:28:40.309665 [DEBUG] switch_ivr_play_say.c:244 Handle play-file:[voicemail/vm-record_message.wav] (en:en)
    2012-01-20 04:28:40.320655 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:44.914967 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:46.304763 [DEBUG] switch_ivr_play_say.c:585 Raw Codec Activated
    2012-01-20 04:28:46.315741 [DEBUG] switch_core_codec.c:116 sofia/internal/1010@DynDNS_WAN_Interface Push codec L16:70
    2012-01-20 04:28:48.321391 [DEBUG] switch_core_codec.c:141 sofia/internal/1010@DynDNS_WAN_Interface Restore previous codec PCMA:8.
    2012-01-20 04:28:48.684336 [DEBUG] mod_voicemail.c:1187 Message is less than minimum record length: 3, discarding it.
    2012-01-20 04:28:48.684336 [DEBUG] switch_ivr_play_say.c:67 No language specified - Using [en]
    2012-01-20 04:28:48.784340 [DEBUG] switch_ivr_play_say.c:244 Handle play-file:[voicemail/vm-too-small.wav] (en:en)
    2012-01-20 04:28:50.467071 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:54.538444 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:54.660429 [DEBUG] switch_ivr_play_say.c:67 No language specified - Using [en]
    2012-01-20 04:28:54.759429 [DEBUG] switch_ivr_play_say.c:244 Handle play-file:[voicemail/vm-record_message.wav] (en:en)
    2012-01-20 04:28:54.759429 [DEBUG] switch_ivr_play_say.c:1302 Codec Activated L16@8000hz 1 channels 20ms
    2012-01-20 04:28:55.948298 [DEBUG] switch_core_session.c:870 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:55.959241 [DEBUG] switch_channel.c:2800 (sofia/internal/1010@DynDNS_WAN_Interface) Callstate Change ACTIVE -> HANGUP
    2012-01-20 04:28:55.959241 [NOTICE] sofia.c:573 Hangup sofia/internal/1010@DynDNS_WAN_Interface [CS_EXECUTE] [NORMAL_CLEARING]
    2012-01-20 04:28:55.959241 [DEBUG] switch_channel.c:2816 Send signal sofia/internal/1010@DynDNS_WAN_Interface [KILL]
    2012-01-20 04:28:55.959241 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:55.959241 [DEBUG] switch_ivr_play_say.c:1672 done playing file
    2012-01-20 04:28:56.080239 [DEBUG] switch_core_session.c:2233 sofia/internal/1010@DynDNS_WAN_Interface skip receive message [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
    2012-01-20 04:28:56.080239 [DEBUG] switch_core_state_machine.c:417 (sofia/internal/1010@DynDNS_WAN_Interface) State EXECUTE going to sleep
    2012-01-20 04:28:56.080239 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/1010@DynDNS_WAN_Interface) Running State Change CS_HANGUP
    2012-01-20 04:28:56.080239 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/1010@DynDNS_WAN_Interface) State HANGUP
    2012-01-20 04:28:56.080239 [DEBUG] mod_sofia.c:454 sofia/internal/1010@DynDNS_WAN_Interface Overriding SIP cause 480 with 200 from the other leg
    2012-01-20 04:28:56.080239 [DEBUG] mod_sofia.c:460 Channel sofia/internal/1010@DynDNS_WAN_Interface hanging up, cause: NORMAL_CLEARING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:47 sofia/internal/1010@DynDNS_WAN_Interface Standard HANGUP, cause: NORMAL_CLEARING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:602 (sofia/internal/1010@DynDNS_WAN_Interface) State HANGUP going to sleep
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:393 (sofia/internal/1010@DynDNS_WAN_Interface) State Change CS_HANGUP -> CS_REPORTING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:362 (sofia/internal/1010@DynDNS_WAN_Interface) Running State Change CS_REPORTING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/1010@DynDNS_WAN_Interface) State REPORTING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:79 sofia/internal/1010@DynDNS_WAN_Interface Standard REPORTING, cause: NORMAL_CLEARING
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:662 (sofia/internal/1010@DynDNS_WAN_Interface) State REPORTING going to sleep
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:387 (sofia/internal/1010@DynDNS_WAN_Interface) State Change CS_REPORTING -> CS_DESTROY
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_session.c:1175 Send signal sofia/internal/1010@DynDNS_WAN_Interface [BREAK]
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_session.c:1349 Session 18 (sofia/internal/1010@DynDNS_WAN_Interface) Locked, Waiting on external entities
    2012-01-20 04:28:56.113227 [NOTICE] switch_core_session.c:1367 Session 18 (sofia/internal/1010@DynDNS_WAN_Interface) Ended
    2012-01-20 04:28:56.113227 [NOTICE] switch_core_session.c:1369 Close Channel sofia/internal/1010@DynDNS_WAN_Interface [CS_DESTROY]
    2012-01-20 04:28:56.113227 [DEBUG] switch_core_state_machine.c:491 (sofia/internal/1010@DynDNS_WAN_Interface) Callstate Change HANGUP -> DOWN
    2012-01-20 04:28:56.124930 [DEBUG] switch_core_state_machine.c:494 (sofia/internal/1010@DynDNS_WAN_Interface) Running State Change CS_DESTROY
    2012-01-20 04:28:56.124930 [DEBUG] switch_core_state_machine.c:504 (sofia/internal/1010@DynDNS_WAN_Interface) State DESTROY
    2012-01-20 04:28:56.124930 [DEBUG] mod_sofia.c:365 sofia/internal/1010@DynDNS_WAN_Interface SOFIA DESTROY
    2012-01-20 04:28:56.124930 [DEBUG] switch_core_state_machine.c:86 sofia/internal/1010@DynDNS_WAN_Interface Standard DESTROY
    2012-01-20 04:28:56.124930 [DEBUG] switch_core_state_machine.c:504 (sofia/internal/1010@DynDNS_WAN_Interface) State DESTROY going to sleep



  • I'm not a freeswitch user yet, still in asterisk with chan_datacard.

    There isn't a log file just like asterisk /var/log/asterisk/full?



  • @sdudley:

    Scratch that, jinxed by kartweel.

    Sorry! :)

    If you disable packet filtering on the pfSense box does it then work?

    I found the easiest way to see what was happening was doing packet captures on the various interfaces to see where the data was going.

    It is positive to know you had it working for a little while :)



  • OK, did a bit of testing with Freeswitch and FusionPBX with FusionPBX at version 1877.

    With packet filtering set to 'on' aka normal operation of PFSense 2.01 x386:
    Dialing internal extension from another internal extension results in the destination phone not ringing and the call timing out to voice-mail. From the dialing extension, there is no ring back tone nor does the dialing extension hear the voice mail prompt when the dialed extension times out to voice mail.

    With packet filtering set to 'off' in PFSense 2.01 x386:
    Dialing an internal extension from another internal extension: Destination phone rings however when answered, audio is only one-way where audio is only being sent from the handset that placed the call. You can hear audio from the originating handset coming through the destination handset but there's no audio returning from the destination handset to the originating handset. Echo test *9196 works although the music on hold *9664 does not result in any audio but appears to be spooling the audio file based on the freeswitch log contents.

    Conclusion:
    FreeSwitch w/FusionPBX works fine on pfsense 2.0 x86 however something must have changed with how SIP traffic is routed between PFSense versions 2 and 2.01 as this seems to be a plausible explanation for the one way audio. I cannot see any errors in either pfsense logging or Freeswitch logging that would indicate a possible avenue to pursue although someone with more experience in freeswitch behavior might be able to spot something amiss.

    I think I might revert back to 2.0 x86 and rebuild the freeswitch and fusionPBX along with svn to reaffirm the full operation under 2.0 but though I would at least post findings with 2.01 as a cautionary tale for those entertaining moving a production critical pfsense 2.0 with Freeswitch to pfsense 2.01.

    Shaun



  • Sip again,  :-\

    Take a look on this topic to see if you have same issue

    http://forum.pfsense.org/index.php/topic,45255.msg236346.html#msg236346

    There maybe some missing ldd to freeswitch libs, freeradius had this bootup issue with mysql libs fixed in package reload script

    http://forum.pfsense.org/index.php/topic,43675.msg233938.html#msg233938



  • It could very well be the same issue that N8LBV is encountering with his Asterisk setup. I have a different configuration with a different SIP PBX system but the symptoms appear to be the same. I wonder if he's having any issues with internal to internal calling?

    Here's my setup:
    1. PFSense 2.01 x86 on a Nano-ITX board with two built in ethernet interfaces.
    2. WAN interface is set to DHCP from the ISP.
    3. LAN interface is static and set to 192.168.1.1 address.
    4. DHCP is enabled on LAN interface and DNS forwarding is 'checked' to allow internal DHCP clients to use the ISP's DNS.
    SIP phones on the 192.168.1.0/24 have static addresses. //Nothing was changed on the phones when moving from PFSense 1.2.3 to 2.01. The PFsense 2.01 was a fresh install and reconfig from scratch.
    5. External SIP provider configured with a single 'channel' or phone number.
    Note: registration with SIP provider works fine and outbound calls originating from any of the internal SIP hard-phones always works and has two way audio as it should.

    DynDNS service is enabled and the DynDNS public DNS name record is used on the phones to force them to attach to the WAN interface and not the LAN interface. //This logic is leftover from Freeswitch on PFSense 1.2.3 as I think the Freeswitch 'package' for PFSense 1.2.3 was configured to bind on the WAN interface and not the LAN…not sure why this was the case other than it would make things a bit easier if using an external SIP gateway or allowing external SIP phones to connect to the internal Freeswitch system.

    Let me know if you would like me to try anything. I have the weekend to experiment and test before the pfsense box takes on it's weekday production role.



  • The installation before reboot was working?

    if so, can you re-install freeswitch package and its dependencies.



  • It appears that 'working' prior to the reboot would have been a relative term. The functions that I primarily use are outbound calling via the SIP gateway provider which does work and continues to work from any handset on the LAN side. I didn't start trying handset to handset calling until after rebooting from our svn installation effort and likely falsely assumed it to be working given the outbound calling success…it's what I get for being so optimistic. All of the internal handsets are able to register via SIP with Freeswitch and the displays are all accurate showing the correct number of missed calls and all dial directly but there's no audio from the destination handset for any internal to internal handset call.

    I'm going to perform a clean install of PFSense 2.0 from an ISO I still have and then perform the Freeswitch and FusionPBX install per Mark's instructions again, confirm operation and then perform a subsequent clean install of PFSense 2.01. I don't think I ever fully tested Freeswitch and FusionPBX on 2.0, certainly not to the depth I have with PFSsense 2.01.



  • Here's the latest.
    Fresh install of PFsense 2.0 x86 and following the Freeswitch and FusionPBX install process outlined in the wiki at http://wiki.fusionpbx.com/index.php/PfSense_Install
    1. Internal handset to handset no audio and no ringing.
    1a. Turn packet filtering off and ringing works however there's only one way audio. Same symptoms as the original configuration on PFsense 2.01.
    2. SIP registration works.
    3. Outbound SIP calls work, inbound SIP calls are not passed through.

    Fresh install of PFSense 2.01 x86 and FusionPBX:
    Same exact symptoms as with PFSense 2.0.
    Same problem as Kartwheel with no audio.

    Shaun



  • Are you listening freeswitch on all interfaces?

    Is there on freeswitch config some kind of nat settings you could disable?

    One last thing, can you try this setup with asterisk?



  • By default Freeswitch is binding to the WAN interface which is how it was setup on PFSense 1.2.3 with the Freeswitch 'package' installed…and worked. I see the point of trying to have it bind to the LAN interface address but I'm not sure how to do that but will look into it.

    You mentioned Asterisk, is it possible to slip Asterisk onto a PFSense 2.0.1 system?
    Getting a bit tired of banging my head on the Freeswitch/FusionPBX on PFSense 2.01 method.
    I added our little one way SIP audio issue to the FusionPBX forum as a final gasping effort. http://www.fusionpbx.com/messageboard/rsssub2list.php?rssid=6&rsssubid=206 there doesn't seem to be much activity on the site meaning expectations of insight or response are fairly low.

    I did see this as well: http://www.fusionpbx.com/messageboard/rsssub2list.php?rssid=6&rsssubid=193 but it doesn't address LAN to LAN SIP one way audio issue.

    I can't shake the idea that the root of the issue seems to be related to the difference in how PFSense 2.x deals with SIP via NAT (LAN-WAN-LAN) compared to how it was handled in PFSense 1.2.3.

    Thanks,
    Shaun




Locked