Hi Ken,
You need to wait for the StreamsRunning CallState before playing DTMFs.
Moreover, if you call core.stop_dtmf_stream() directly after calling
core.play_dtmf(1,300) the DTMF will stop immediately after being started
and will not last 300ms.
Cheers,
Ghislain
On 16/09/2015 15:39, Kenneth Clive wrote:
I am having trouble generating dtmf tones when I receive a call. Here
is what my call_state_changed callback looks like (this is in Python):
def call_state_changed(core, call, state, message):
logging.warning("call_state_changed: " + str(state) + ", " + message)
if state == linphone.CallState.IncomingReceived:
print "***Incoming call on " + core.identity
core.accept_call(call)
time.sleep(10) # wait 10 seconds for audio to play
elif state == linphone.CallState.Connected:
core.start_dtmf_stream()
core.play_dtmf(1,300) # press 1 for 300 ms to
acknowledge the alert
core.stop_dtmf_stream()
print "***Call successfully answered on " + core.identity
elif state == linphone.CallState.End:
print "***Call successfully hung up on " + core.identity
elif state == linphone.CallState.Error:
logging.error("call_state_changed: " + core.identity + ", " +
str(state) + ", " + message)
When I am handling the linphone.CallState.Connected case, I am
starting the dtmf stream, playing a ‘1’ digit for 300 ms, and then
stopping the dtmf stream. However, when I run my SIP client script
and send a call to it, I get the following output in console when my
client tries to generate the dtmf tone:
ERROR:root:No dtmf generator at this time !
I’ve made sure that both my client and my PBX are using the same DTMF
payload type (rfc2833) (I’ve set use_rfc2833_for_dtmf to true in my
core object). What is required in order for me to create a dtmf
generator? I am not finding much help in the Linphone Python
documentation.
Thanks!
-Ken C.
_______________________________________________
Linphone-users mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/linphone-users