Hi, We have a freeswitch setup with an Sangoma A200 plus 1 remora card setup. The cards have 6 FXO ports that go to 5 POTS lines and 2 FXS ports. Our fax machine is plugged into the first FXS port (freetdm 1:1). Incoming faxes work fine but outgoing faxes do not. The fax line is the 3rd Pots line (freetdm 2:3). The incoming faxes are bridged with this in the 00_inbound_did.xml: <!- LINE3 328-6982-> < !- Always directed to the fax machine -> < extension name=”Line 3(6982)” continue=”true”> < condition field=”source” expression=”mod_freetdm”/> < condition field=”${channel_name}” expression=”^(FreeTDM/2:3/)$”> < action application=”set” data=”domain_name=$${domain}”/> < action application=”set” data=”transfer_ringback=$${us-ring}”/> < action application=”bridge” data=”freetdm/2/3|freetdm/1/1″/> < /condition> < /extension> < !- LINE3 DONE-> Outgoing faxes are bridged with this in the dialplan/default.xml: <extension name=”bridge-FXS-to-FXO” continue=”true”> < condition field=”destination_number” expression=”^7(.+)$”/> < condition field=”channel_name” expression=”FreeTDM/1:1/”> < action application=”bridge” data=” freetdm/1/1/${destination_number}|freetdm/2/3/${destination_number}”/> </condition> < /extension> What I figured out from the logs and research on the wikis is that when faxes are sent out, the freeswitch server does not get the entire number through DTMF and the call fails. Here is a portion of the logs from the last outgoing fax that worked: 2013-04-04 11:18:23.494287 [DEBUG] ftmod_analog.c:830 [s1c1][1:7] Changed state from DIALTONE to COLLECT 2013-04-04 11:18:23.494287 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:23.494287 [DEBUG] mod_freetdm.c:2488 got DTMF sig [7] 2013-04-04 11:18:23.514287 [DEBUG] ftmod_analog.c:640 [s1c1][1:7] Completed state change from DIALTONE to COLLECT in 20 ms 2013-04-04 11:18:23.514287 [DEBUG] ftmod_analog.c:646 [s1c1][1:7] Executing state handler on 1:1 for COLLECT 2013-04-04 11:18:24.074292 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 1 (debug = 0) 2013-04-04 11:18:24.074292 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:24.074292 [DEBUG] mod_freetdm.c:2488 got DTMF sig [71] 2013-04-04 11:18:25.113819 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 7 (debug = 0) 2013-04-04 11:18:25.113819 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:25.113819 [DEBUG] mod_freetdm.c:2488 got DTMF sig [717] 2013-04-04 11:18:25.554309 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 5 (debug = 0) 2013-04-04 11:18:25.554309 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:25.554309 [DEBUG] mod_freetdm.c:2488 got DTMF sig [7175] 2013-04-04 11:18:26.134309 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 7 (debug = 0) 2013-04-04 11:18:26.134309 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:26.134309 [DEBUG] mod_freetdm.c:2488 got DTMF sig [71757] 2013-04-04 11:18:26.634314 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 2 (debug = 0) 2013-04-04 11:18:26.634314 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:26.634314 [DEBUG] mod_freetdm.c:2488 got DTMF sig [717572] 2013-04-04 11:18:26.834315 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 2 (debug = 0) 2013-04-04 11:18:26.834315 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:26.834315 [DEBUG] mod_freetdm.c:2488 got DTMF sig [7175722] 2013-04-04 11:18:27.614322 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 9 (debug = 0) 2013-04-04 11:18:27.614322 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:27.614322 [DEBUG] mod_freetdm.c:2488 got DTMF sig [71757229] 2013-04-04 11:18:28.373722 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 0 (debug = 0) 2013-04-04 11:18:28.373722 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:28.373722 [DEBUG] mod_freetdm.c:2488 got DTMF sig [717572290] 2013-04-04 11:18:28.894333 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 6 (debug = 0) 2013-04-04 11:18:28.894333 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:28.894333 [DEBUG] mod_freetdm.c:2488 got DTMF sig [7175722906] 2013-04-04 11:18:29.714340 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 3 (debug = 0) 2013-04-04 11:18:29.714340 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:29.714340 [DEBUG] mod_freetdm.c:2488 got DTMF sig [71757229063] 2013-04-04 11:18:30.094343 [DEBUG] ftdm_io.c:3783 [s1c1][1:7] Queuing DTMF 4 (debug = 0) 2013-04-04 11:18:30.094343 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-04 11:18:30.094343 [DEBUG] mod_freetdm.c:2488 got DTMF sig [717572290634] 2013-04-04 11:18:32.114360 [DEBUG] ftmod_analog.c:851 [s1c1][1:7] Number obtained [717572290634] 2013-04-04 11:18:32.114360 [DEBUG] ftmod_analog.c:852 [s1c1][1:7] Changed state from COLLECT to RING 2013-04-04 11:18:32.134360 [DEBUG] ftmod_analog.c:640 [s1c1][1:7] Completed state change from COLLECT to RING in 19 ms 2013-04-04 11:18:32.134360 [DEBUG] ftmod_analog.c:646 [s1c1][1:7] Executing state handler on 1:1 for RING This is what happens now: 2013-04-09 14:54:20.616457 [DEBUG] ftmod_analog.c:830 [s1c1][1:7] Changed state from DIALTONE to COLLECT 2013-04-09 14:54:20.616457 [DEBUG] mod_freetdm.c:2318 got FXS sig [COLLECTED_DIGIT] 2013-04-09 14:54:20.616457 [DEBUG] mod_freetdm.c:2488 got DTMF sig [7] 2013-04-09 14:54:20.635887 [DEBUG] ftmod_analog.c:640 [s1c1][1:7] Completed state change from DIALTONE to COLLECT in 20 ms 2013-04-09 14:54:20.635887 [DEBUG] ftmod_analog.c:646 [s1c1][1:7] Executing state handler on 1:1 for COLLECT 2013-04-09 14:54:22.636477 [DEBUG] ftmod_analog.c:851 [s1c1][1:7] Number obtained [7] 2013-04-09 14:54:22.636477 [DEBUG] ftmod_analog.c:852 [s1c1][1:7] Changed state from COLLECT to RING 2013-04-09 14:54:22.656477 [DEBUG] ftmod_analog.c:640 [s1c1][1:7] Completed state change from COLLECT to RING in 20 ms Twice the Number obtained got more than one digit but it always dropped one at least one digit so that the fax number was not correct. I tried using start_dtmf and start_dtmf_generate from the Freeswitch wiki and also looked in the mailing list for issues with dtmf and faxing but was not able to find any solutions. I tried switching the FXS port to the 2nd one and swapped out the phone line but that did not have any other results. Let me know if you need to know more about the configuration or logs. Hopefully it is something easy someone with more knowledge than me can figure out. Thanks! Grant
You've told it to match "7" followed by any number of digits... I'm surprised your actually getting as far into the pattern match as you are. Can you match on specific number plan lengths? i.e. ^7(\d{7}|1\d{10})$ instead? -- Nathan
<extension name=”bridge-FXS-to-FXO” continue=”true”> < condition field=”destination_number” expression=”^7(.+)$”/> < condition field=”channel_name” expression=”FreeTDM/1:1/”> < action application=”bridge” data=”freetdm/1/1/${destination_number}|freetdm/2/3/${destination_number}”/> </condition> < /extension>
-- ------------------------------------------------------------ Nathan Neulinger nneul@mst.edu Missouri S&T Information Technology (573) 612-1412 System Administrator - Architect
I changed the bridge-FXS-to-FXO extension to include number plan Nathan provided. That worked well because in the dialplan faxes did not pass the conditions for that extension unless they had 7 or 10 digits. It did not resolve the issue of the faxes not going through. I ran a fax through and according to the logs (see attached) the only digit collected was 7 and then it sent that to the dialplan which failed on the bridge-fxs-to-fxo extension because it only had one digit. I ran a couple faxes and tried using 7 digit and 10 digit numbers and the results were the same with only one digit collected for the number. Thanks! Grant -----Original Message----- From: Nathan Neulinger [mailto:nneul@mst.edu] Sent: Wednesday, April 10, 2013 4:45 PM To: FreeSWITCH Users Help Cc: Grant Iler Subject: Re: [Freeswitch-users] Outgoing fax issue. You've told it to match "7" followed by any number of digits... I'm surprised your actually getting as far into the pattern match as you are. Can you match on specific number plan lengths? i.e. ^7(\d{7}|1\d{10})$ instead? -- Nathan
<extension name=”bridge-FXS-to-FXO” continue=”true”> < condition field=”destination_number” expression=”^7(.+)$”/> < condition field=”channel_name” expression=”FreeTDM/1:1/”> < action application=”bridge” data=”freetdm/1/1/${destination_number}|freetdm/2/3/${destination_number}”/> </condition> < /extension>
-- ------------------------------------------------------------ Nathan Neulinger nneul@mst.edu Missouri S&T Information Technology (573) 612-1412 System Administrator - Architect
participants (2)
-
Grant Iler
-
Nathan Neulinger