MT#61140 DSM: add `B2B.sendEstablishedReinvite()`

Add support of the `sendEstablishedReinvite()`
for the B2B DSM module.

Change-Id: Idb46f9b6a900db2b6f71748fcb91223b561ee290
mr13.1
Donat Zenichev 2 years ago
parent f7d7436d5d
commit 670d708f95

@ -143,6 +143,7 @@ DSMAction* DSMCoreModule::getAction(const string& from_str) {
DEF_CMD("B2B.connectCallee", SCB2BConnectCalleeAction);
DEF_CMD("B2B.terminateOtherLeg", SCB2BTerminateOtherLegAction);
DEF_CMD("B2B.sendReinvite", SCB2BReinviteAction);
DEF_CMD("B2B.sendEstablishedReinvite", SCB2BSendEstablishedReinviteAction);
DEF_CMD("B2B.enableEarlyMediaRelay", SCB2BEnableEarlyMediaRelayAction);
DEF_CMD("B2B.addHeader", SCB2BAddHeaderAction);
DEF_CMD("B2B.getHeaderRequest", SCB2BGetHeaderRequestAction);
@ -1538,6 +1539,15 @@ EXEC_ACTION_START(SCB2BReinviteAction) {
sess->sendReinvite(updateSDP, par2);
} EXEC_ACTION_END;
EXEC_ACTION_START(SCB2BSendEstablishedReinviteAction) {
AmB2BSession* b2b_sess = dynamic_cast<AmB2BSession*>(sess);
if (NULL != b2b_sess) {
b2b_sess->sendEstablishedReInvite();
} else {
ERROR("internal: Session object is not B2B session (huh?), not reinviting\n");
}
} EXEC_ACTION_END;
EXEC_ACTION_START(SCB2BEnableEarlyMediaRelayAction) {
string val = resolveVars(arg, sess, sc_sess, event_params);
DBG("B2B: %sabling early media SDP relay as re-Invite\n", (val=="true")?"En":"Dis");

@ -123,6 +123,7 @@ DEF_ACTION_2P(SCPlayRingtoneAction);
DEF_ACTION_2P(SCB2BConnectCalleeAction);
DEF_ACTION_1P(SCB2BTerminateOtherLegAction);
DEF_ACTION_2P(SCB2BReinviteAction);
DEF_ACTION_1P(SCB2BSendEstablishedReinviteAction);
DEF_ACTION_1P(SCB2BEnableEarlyMediaRelayAction);
DEF_ACTION_1P(SCB2BAddHeaderAction);

@ -252,11 +252,13 @@ private:
void onSessionTimeout();
void onNoAck(unsigned int cseq);
public:
/** send re-INVITE with established session description
* @return 0 on success
*/
int sendEstablishedReInvite(const std::string &hdrs = "");
protected:
/** do session refresh */
bool refresh(int flags = 0);

Loading…
Cancel
Save