Strange problem on Rotary French phone

I have connected a Rotary French Phone Socotel S63 to a tdm410 card.
The phone can call, but this happen when I try to call this phone…


- Called DAHDI/1
[Jan 16 23:40:09]     -- DAHDI/1-1 is ringing
[Jan 16 23:40:09]   == Begin MixMonitor Recording SIP/telefono1-00000000
[Jan 16 23:40:10]     -- DAHDI/1-1 is ringing
[Jan 16 23:40:10]     -- DAHDI/1-1 answered SIP/telefono1-00000000
[Jan 16 23:40:10]     -- Channel DAHDI/1-1 joined 'simple_bridge' basic-bridge <bead8176-2021-4b55-abe4-4131383eba4b>
[Jan 16 23:40:10]     -- Channel SIP/telefono1-00000000 joined 'simple_bridge' basic-bridge <bead8176-2021-4b55-abe4-4131383eba4b>
[Jan 16 23:40:10]        > 0x7f99f40447f0 -- Strict RTP switching to RTP target address 192.168.0.2:4000 as source
[Jan 16 23:40:12]     -- Channel DAHDI/1-1 left 'simple_bridge' basic-bridge <bead8176-2021-4b55-abe4-4131383eba4b>
[Jan 16 23:40:12]     -- Channel SIP/telefono1-00000000 left 'simple_bridge' basic-bridge <bead8176-2021-4b55-abe4-4131383eba4b>
[Jan 16 23:40:12]     -- Hanging up on 'DAHDI/1-1'

make one ring
then “answer” immediately
then close the call after some seconds.
Any help please?

I have put in the same port for testing a modern analog phone and this works fine.

some interesting debug driver messages

[ 1236.910526] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 0, messages=0, lrev=0
[ 1236.910571] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 1, messages=0, lrev=0
[ 1236.910607] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 2, messages=0, lrev=0
[ 1236.910643] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 3, messages=0, lrev=0
[ 1236.910819] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=11 lasttxhook=01 framecount=21547
[ 1236.910838] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=1 shadow=11 lasttxhook=01 framecount=21547
[ 1236.910846] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=2 shadow=11 lasttxhook=01 framecount=21547
[ 1236.910852] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=3 shadow=11 lasttxhook=01 framecount=21547
[ 1236.913351] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 0, messages=0, lrev=0
[ 1236.913634] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 1, messages=0, lrev=0
[ 1236.913786] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 2, messages=0, lrev=0
[ 1236.913823] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=11 lasttxhook=01 framecount=21550
[ 1236.913838] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=1 shadow=11 lasttxhook=01 framecount=21550
[ 1236.913844] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=2 shadow=11 lasttxhook=01 framecount=21550
[ 1236.913890] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 3, messages=0, lrev=0
[ 1236.914834] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=3 shadow=11 lasttxhook=01 framecount=21551
[ 1240.918991] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 0, messages=0, lrev=0
[ 1240.919063] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=11 lasttxhook=01 framecount=25555
[ 1240.919122] wctdm24xxp 0000:03:04.0: Channel 0 OnHookTransfer start
[ 1240.920066] wctdm24xxp 0000:03:04.0: SLIC_LF RETRY: card=0 shadow=11 lasttxhook=12 framecount=25556
[ 1240.929072] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=22 lasttxhook=02 framecount=25565
[ 1240.979349] wctdm24xxp 0000:03:04.0: Setting VMWI on channel 1, messages=0, lrev=0
[ 1240.980090] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=1 shadow=11 lasttxhook=01 framecount=25616
[ 1240.982390] wctdm24xxp 0000:03:04.0: Channel 1 OnHookTransfer start
[ 1240.983080] wctdm24xxp 0000:03:04.0: SLIC_LF RETRY: card=1 shadow=11 lasttxhook=12 framecount=25619
[ 1240.992087] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=1 shadow=22 lasttxhook=02 framecount=25628
[ 1241.313277] wctdm24xxp 0000:03:04.0: Setting FXS hook state to 2 (04) framecount=25950
[ 1241.323082] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=24 lasttxhook=04 framecount=25959
[ 1241.331600] wctdm24xxp 0000:03:04.0: Setting FXS hook state to 3 (00) framecount=25968
[ 1241.341110] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=40 lasttxhook=00 framecount=25977
[ 1241.831189] wctdm24xxp 0000:03:04.0: Setting FXS hook state to 0 (01) framecount=26467
[ 1241.840196] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=0 shadow=11 lasttxhook=01 framecount=26476
[ 1243.983334] wctdm24xxp 0000:03:04.0: Channel 1 OnHookTransfer stop
[ 1243.984335] wctdm24xxp 0000:03:04.0: SLIC_LF RETRY: card=1 shadow=22 lasttxhook=11 framecount=28620
[ 1243.993334] wctdm24xxp 0000:03:04.0: SLIC_LF OK: card=1 shadow=11 lasttxhook=01 framecount=28629

Completely wild guess, but is there some issue with the line impedance used for on-hook/off-hook detection? It looks like it thinks the phone is on-hook until it rings, whereupon it thinks the phone has gone off-hook and the call is answered. Then a couple of seconds later without any further activity, the line impedance returns to the point where it thinks the phone is on-hook again and so the call is hung up.

Can you test with another phone?

1 Like

My guess is that the ringer load is to high, if you remove the strap between terminals 11 and 17 you disconnect the ringer, then it will look in your logging that it keeps ringing until you lift of the handset. (No ringing will be there) If so, the strap could be replaced with a resistor, or capacitor. What’s best will end in a long discussion. Look for what you have, I would recommend a capacitor of 1 uF un-polarized and rated at least 200V, but a resistor of at least 1000 ohms may do the difference. Higher values may work, but give less sound. You have to do some testing. It may even work with as much as 3300 ohms??

1 Like

Thanks all for help, I have “solved” using another pci card (the good old and still working Openvox A400P) for this phone.

I have found after days of recompiling, reinstalling, etc…another solution: use a decent extensions.conf

This extensions.conf don’t work


[local]
include => from-dahdi

exten => 200,1,Dial(dahdi/4/outgoing_number) // dial 200 to dialout from dahdi channel 4
exten => 200,1,Set(LANGUAGE()=it)
exten => 200,2,Hangup

exten => 1001,1,Dial(SIP/1001,10,t,m)
;exten => 1001,2,Voicemail(1001@local)
exten => 1001,3,Hangup

exten => 1002,1,Dial(SIP/1002,10,t,m)
;exten => 1002,2,Voicemail(1002@local)
exten => 1002,3,Hangup

exten => 1003,1,Dial(SIP/1003,10,t,m)
;exten => 1003,2,Voicemail(1003@local)
exten => 1003,3,Hangup

exten => 1004,1,Dial(SIP/1004,10,t,m)
;exten => 1004,2,Voicemail(1004@local)
exten => 1004,3,Hangup

exten => 7500,1,VoicemailMain(@local)

exten=>500,1,Noop(UnixTime) 
exten=>500,n,SayUnixTime(,EST5EDT) 
exten=>500,n,NoOp(demo-echotest) 
exten=>500,n,Playback(demo-echotest) 
exten=>500,n(echo),Echo() 
exten=>500,n,Playback(demo-echodone) 
exten=>500,n,Hangup()

[from-dahdi]
exten => 4001,1,Dial(dahdi/1,10,t,m)
exten => 4001,3,Hangup

why? Is missing a “s” extensions and local phones are not reachable from 4001

This works fine, now the phone answer and dial.

[local]
include => from-dahdi

exten => 200,1,Dial(dahdi/4/outgoing_number) // dial 200 to dialout from dahdi channel 4
exten => 200,1,Set(LANGUAGE()=it)
exten => 200,2,Hangup

exten => 1001,1,Dial(SIP/1001,10,t,m)
;exten => 1001,2,Voicemail(1001@local)
exten => 1001,3,Hangup

exten => 1002,1,Dial(SIP/1002,10,t,m)
;exten => 1002,2,Voicemail(1002@local)
exten => 1002,3,Hangup

exten => 1003,1,Dial(SIP/1003,10,t,m)
;exten => 1003,2,Voicemail(1003@local)
exten => 1003,3,Hangup

exten => 1004,1,Dial(SIP/1004,10,t,m)
;exten => 1004,2,Voicemail(1004@local)
exten => 1004,3,Hangup

exten => 7500,1,VoicemailMain(@local)

exten=>500,1,Noop(UnixTime) 
exten=>500,n,SayUnixTime(,EST5EDT) 
exten=>500,n,NoOp(demo-echotest) 
exten=>500,n,Playback(demo-echotest) 
exten=>500,n(echo),Echo() 
exten=>500,n,Playback(demo-echodone) 
exten=>500,n,Hangup()

[from-dahdi]
include => local

exten => 4001,1,Dial(dahdi/1,10,t,m)
;exten => 1004,2,Voicemail(1004@local)
exten => 4001,3,Hangup

exten => s,n,Answer()
exten => s,n,Dial(Local/${EXTEN},10,t,m)
exten => s,n,Hangup()

Just to clarify, I did a diff:

--- /dev/fd/8	2023-02-12 14:58:37.143670849 +1300
+++ /dev/fd/9	2023-02-12 14:58:37.143670849 +1300
@@ -32,5 +32,12 @@
 exten=>500,n,Hangup()

 [from-dahdi]
+include => local
+
 exten => 4001,1,Dial(dahdi/1,10,t,m)
+;exten => 1004,2,Voicemail(1004@local)
 exten => 4001,3,Hangup
+
+exten => s,n,Answer()
+exten => s,n,Dial(Local/,10,t,m)
+exten => s,n,Hangup()
1 Like

This is not an accurate representation of what was above.

You can tell I did that diff through a shell, can’t you? :upside_down_face:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.