Hi,
I am trying to implement Call conferencing using AMI. This is my requirement.
- Caller-A calls call centre.
- Caller-B attends the call. (Used dial/queue application)
- Caller-B calls Caller-C
- Join Caller-A, Caller-B and Caller-C into conference, keeping Caller-B as the marked user.
I want to implement this using AMI. Tried “Originate” Action and “ConfBridge” application for that.
I was able to implement conference with Caller-B as the conference initiater/marked user and then add Caller-A and Caller-C as normal user.
Below given is the code i used.
//Caller-B initiate conference as marked user
$toSend = “Action: originate\r\n”;
$toSend .= “Channel: SIP/2001\r\n”;
$toSend .= “CallerId: ast\r\n”;
$toSend .= “Application: ConfBridge\r\n”;
$toSend .= “Data: 1234,ners_bridge,ners_marked_user,ners_marked_cntl\r\n”;
$toSend .= “Async: false\r\n\r\n”;
fputs($oSocket, $toSend);
//Add Caller-A to conference as normal user
echo "Enter number for Conference: ";
$inConfNum = trim(fgets(STDIN));
$callNum = “SIP/”.$inConfNum;
$toSend = “Action: originate\r\n”;
$toSend .= “Channel: $callNum\r\n”;
$toSend .= “CallerId: ast\r\n”;
$toSend .= “Application: ConfBridge\r\n”;
$toSend .= “Data: 1234,ners_bridge,ners_user,\r\n”;
$toSend .= “Async: false\r\n\r\n”;
fputs($oSocket, $toSend);
//Add Caller-C to conference as normal user
echo "Enter number for Conference: ";
$inConfNum = trim(fgets(STDIN));
$callNum = “SIP/”.$inConfNum;
$toSend = “Action: originate\r\n”;
$toSend .= “Channel: $callNum\r\n”;
$toSend .= “CallerId: ast\r\n”;
$toSend .= “Application: ConfBridge\r\n”;
$toSend .= “Data: 1234,ners_bridge,ners_user,\r\n”;
$toSend .= “Async: false\r\n\r\n”;
fputs($oSocket, $toSend);
But my requirement is, call should be initiated by the Caller-A and attended by Caller-B, without knowing that its going to be a conference call. Later Caller-B needs to initiate conference and join Caller-A and Caller-C, on requirement basis.
Query:
- Is it possible to convert a normal call (between Caller-A and Caller-B) to conference bridge dynamically and then call Caller-C to join the conference.
- If not possible please suggest me a way to do this.