Dialogic Support Helpweb
Dialogic® Host Media Processing (HMP) Software
Working code for testing hold/retrieve on Dialogic® Host Media Processing (HMP) Software for Windows®
Introduction:
This article describes working code used for testing SIP hold & retrieve. This code was based on the gc_basic_call_model demo, and was edited to add the ability to test the SIP hold and retrieve functionality (via re-invite) on Dialogic® Host Media Processing (HMP) Software.
This code was tested using Dialogic® Host Media Processing (HMP) Software Release 3.0 for Windows® .
Program Description:
Program Description:
The user will need to modify the gc_hmp_hold_retrieve.cfg file to run the program.
The program does the following:
- Makes an outbound call to the IP address configured in the gc_hmp_hold_retrieve.cfg file (it is also possible to configure the program to receive an inbound call).
- Plays a prompt.
- Sends a re-invite message, using gc_ReqModifyCall( ) to set the IP CAP structure direction to "IP_CAP_DIR_LCLRTPINACTIVE". This assumes the hold-type parameter is set to "REQH" in the .cfg, to send a request message to put the call on hold.
- If the remote endpoint accepts the request, it will send a 200 OK message (viewable in a network trace) and the program will receive the GCEV_MODIFY_CALL_ACK event.
- No more RTP packets will be sent to the remote endpoint.
- Plays a second file that will not be heard by the remote endpoint (to verify that the call is now on hold).
- Sends a re-invite message, using gc_ReqModifyCall( ) to set the IP CAP structure direction to "IP_CAP_DIR_LCLTRANSMIT" and "IP_CAP_DIR_LCLRECEIVE". This will send a request message to retrieve the call from the hold state.
- If the remote endpoint accepts the request, it will send a 200 OK message (viewable in a network trace) and the program will receive another GCEV_MODIFY_CALL_ACK event.
- RTP packet streaming to the remote endpoint will resume.
- Plays a third file that will be heard by the remote endpoint to verify that the call has been retrieved.
- Another alternative is to configure the hold-type parameter as "ACCH" in the gc_hmp_hold_retrieve.cfg file, to cause the application to instead wait for the re-invite message (i.e. the remote endpoint will place the call on hold and retreive the call). The program will receive a GCEV_REQ_MODIFY_CALL event in response to the request, and call gc_AcceptModifyCall( ) to accept this and send back a 200 OK message over the network.
Product List
Dialogic® Host Media Processing Software Release 3.0 for Windows®
Related Documentation
Dialogic® Global Call API for Host Media Processing on Windows Programming Guide
http://www.dialogic.com/manuals/docs/globalcall_programming_hmp_win_v3.pdf
Dialogic® Global Call API for Linux and Windows Operating Systems Library Reference
http://www.dialogic.com/manuals/docs/globalcall_api_v7.pdf
Dialogic® Global Call IP for Host Media Processing Technology Guide
http://www.dialogic.com/manuals/docs/globalcall_for_ip_hmp_v8.pdf
http://www.dialogic.com/manuals/docs/globalcall_programming_hmp_win_v3.pdf
Dialogic® Global Call API for Linux and Windows Operating Systems Library Reference
http://www.dialogic.com/manuals/docs/globalcall_api_v7.pdf
Dialogic® Global Call IP for Host Media Processing Technology Guide
http://www.dialogic.com/manuals/docs/globalcall_for_ip_hmp_v8.pdf


