mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
generate connected line info update from info in h.323 packets
Tested by: benngard git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1503,6 +1503,14 @@ int onAlerting(ooCallData *call)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
c = p->owner;
|
c = p->owner;
|
||||||
|
|
||||||
|
if (call->remoteDisplayName) {
|
||||||
|
struct ast_party_connected_line connected;
|
||||||
|
ast_party_connected_line_init(&connected);
|
||||||
|
connected.id.name = (char *) call->remoteDisplayName;
|
||||||
|
connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
|
||||||
|
ast_channel_queue_connected_line_update(c, &connected);
|
||||||
|
}
|
||||||
if (c->_state != AST_STATE_UP)
|
if (c->_state != AST_STATE_UP)
|
||||||
ast_setstate(c, AST_STATE_RINGING);
|
ast_setstate(c, AST_STATE_RINGING);
|
||||||
|
|
||||||
@@ -1546,6 +1554,14 @@ int onProgress(ooCallData *call)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
c = p->owner;
|
c = p->owner;
|
||||||
|
|
||||||
|
if (call->remoteDisplayName) {
|
||||||
|
struct ast_party_connected_line connected;
|
||||||
|
ast_party_connected_line_init(&connected);
|
||||||
|
connected.id.name = (char *) call->remoteDisplayName;
|
||||||
|
connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
|
||||||
|
ast_channel_queue_connected_line_update(c, &connected);
|
||||||
|
}
|
||||||
if (c->_state != AST_STATE_UP)
|
if (c->_state != AST_STATE_UP)
|
||||||
ast_setstate(c, AST_STATE_RINGING);
|
ast_setstate(c, AST_STATE_RINGING);
|
||||||
|
|
||||||
@@ -1927,6 +1943,15 @@ int onCallEstablished(ooCallData *call)
|
|||||||
}
|
}
|
||||||
if (p->owner) {
|
if (p->owner) {
|
||||||
struct ast_channel* c = p->owner;
|
struct ast_channel* c = p->owner;
|
||||||
|
|
||||||
|
if (call->remoteDisplayName) {
|
||||||
|
struct ast_party_connected_line connected;
|
||||||
|
ast_party_connected_line_init(&connected);
|
||||||
|
connected.id.name = (char *) call->remoteDisplayName;
|
||||||
|
connected.source = AST_CONNECTED_LINE_UPDATE_SOURCE_ANSWER;
|
||||||
|
ast_channel_queue_connected_line_update(c, &connected);
|
||||||
|
}
|
||||||
|
|
||||||
ast_queue_control(c, AST_CONTROL_ANSWER);
|
ast_queue_control(c, AST_CONTROL_ANSWER);
|
||||||
ast_channel_unlock(p->owner);
|
ast_channel_unlock(p->owner);
|
||||||
manager_event(EVENT_FLAG_SYSTEM,"ChannelUpdate","Channel: %s\r\nChanneltype: %s\r\n"
|
manager_event(EVENT_FLAG_SYSTEM,"ChannelUpdate","Channel: %s\r\nChanneltype: %s\r\n"
|
||||||
|
@@ -38,6 +38,23 @@ int ooOnReceivedReleaseComplete(OOH323CallData *call, Q931Message *q931Msg);
|
|||||||
int ooOnReceivedCallProceeding(OOH323CallData *call, Q931Message *q931Msg);
|
int ooOnReceivedCallProceeding(OOH323CallData *call, Q931Message *q931Msg);
|
||||||
int ooOnReceivedAlerting(OOH323CallData *call, Q931Message *q931Msg);
|
int ooOnReceivedAlerting(OOH323CallData *call, Q931Message *q931Msg);
|
||||||
int ooOnReceivedProgress(OOH323CallData *call, Q931Message *q931Msg);
|
int ooOnReceivedProgress(OOH323CallData *call, Q931Message *q931Msg);
|
||||||
|
int ooHandleDisplayIE(OOH323CallData *call, Q931Message *q931Msg);
|
||||||
|
|
||||||
|
int ooHandleDisplayIE(OOH323CallData *call, Q931Message *q931Msg) {
|
||||||
|
Q931InformationElement* pDisplayIE;
|
||||||
|
|
||||||
|
/* check for display ie */
|
||||||
|
pDisplayIE = ooQ931GetIE(q931Msg, Q931DisplayIE);
|
||||||
|
if(pDisplayIE) {
|
||||||
|
if (call->remoteDisplayName)
|
||||||
|
memFreePtr(call->pctxt, call->remoteDisplayName);
|
||||||
|
call->remoteDisplayName = (char *) memAllocZ(call->pctxt,
|
||||||
|
pDisplayIE->length*sizeof(ASN1OCTET)+1);
|
||||||
|
strncpy(call->remoteDisplayName, (char *)pDisplayIE->data, pDisplayIE->length*sizeof(ASN1OCTET));
|
||||||
|
}
|
||||||
|
|
||||||
|
return OO_OK;
|
||||||
|
}
|
||||||
|
|
||||||
int ooHandleFastStart(OOH323CallData *call, H225Facility_UUIE *facility)
|
int ooHandleFastStart(OOH323CallData *call, H225Facility_UUIE *facility)
|
||||||
{
|
{
|
||||||
@@ -796,6 +813,7 @@ int ooOnReceivedAlerting(OOH323CallData *call, Q931Message *q931Msg)
|
|||||||
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
||||||
int i=0, ret=0;
|
int i=0, ret=0;
|
||||||
|
|
||||||
|
ooHandleDisplayIE(call, q931Msg);
|
||||||
|
|
||||||
if(!q931Msg->userInfo)
|
if(!q931Msg->userInfo)
|
||||||
{
|
{
|
||||||
@@ -1019,6 +1037,7 @@ int ooOnReceivedProgress(OOH323CallData *call, Q931Message *q931Msg)
|
|||||||
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
||||||
int i=0, ret=0;
|
int i=0, ret=0;
|
||||||
|
|
||||||
|
ooHandleDisplayIE(call, q931Msg);
|
||||||
|
|
||||||
if(!q931Msg->userInfo)
|
if(!q931Msg->userInfo)
|
||||||
{
|
{
|
||||||
@@ -1242,6 +1261,8 @@ int ooOnReceivedSignalConnect(OOH323CallData* call, Q931Message *q931Msg)
|
|||||||
ooLogicalChannel * pChannel = NULL;
|
ooLogicalChannel * pChannel = NULL;
|
||||||
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
H245H2250LogicalChannelParameters * h2250lcp = NULL;
|
||||||
|
|
||||||
|
ooHandleDisplayIE(call, q931Msg);
|
||||||
|
|
||||||
if(!q931Msg->userInfo)
|
if(!q931Msg->userInfo)
|
||||||
{
|
{
|
||||||
OOTRACEERR3("Error: UUIE not found in received H.225 Connect message"
|
OOTRACEERR3("Error: UUIE not found in received H.225 Connect message"
|
||||||
|
Reference in New Issue
Block a user