<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 30, 2020 at 5:19 PM Kevin Harwell <<a href="mailto:kharwell@digium.com">kharwell@digium.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Thu, Jan 30, 2020 at 2:58 PM <a href="mailto:info@magnussolution.com" target="_blank">info@magnussolution.com</a> <<a href="mailto:info@magnussolution.com" target="_blank">info@magnussolution.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>in my country when I dial to a mobile and I not answer the call, the call going to the voicemail, but the audio is executed before the 200OK, on 183 early media.<div><br></div><div>so, I need to execute the AMD when I receive the 183, not the 200 OK.</div></div></blockquote><div><br></div><div>Unfortunately I am unaware of any easy solution.<br></div><div><br></div><div>Something to be aware of if you are not. From what I understand app_dial is reading the frames from the channel. Any solution that attempts to also read frames from the same channel at the same time is going to run into problems. So for instance, you can't execute app_dial and app_amd at the same time.</div><div><br></div><div>If you wish to inject some kind of audio listening, and detection algorithms while dialing you'll have to do that within the confines of the dial application. Basically, while app_dial is waiting for the other side to answer it's processing frames. When an audio frame is received then that is where you'll want to do your detection. Also once answered you'll need to continue processing incoming audio frames. Maybe you are already doing all of this?</div><div><br></div><div>If that's the case then if a hangup occurs app_dial will automatically handle what you need since it will detect the hangup and stop reading frames, which in turn means audio will not get passed down into your detection checks anymore. There is no loop to break out of since the dial application is handing that for you (reading of frames, etc.).</div></div></div></blockquote><div><br></div><div>Frame hooks or audio hooks might help here.  Off hand, I don't know if they are active at this time but they might make it easier to implement in another module.<br></div><div><br></div><div>Richard</div><br></div></div>