OSIP2协议栈收到200 OK后如何获取CALL-ID
时间: 2023-07-16 17:14:30 浏览: 97
osip2协议栈解析
在OSIP2协议栈中,可以通过解析SIP消息头部来获取CALL-ID。在收到200 OK响应后,需要首先解析SIP消息的起始行,确定其是一个响应消息,并且该响应是针对一个INVITE请求的响应。
接下来,在SIP消息头部中查找名为"Call-ID"的字段,该字段的值即为CALL-ID。在OSIP2协议栈中,可以通过调用osip_message_get_call_id函数来获取CALL-ID。
以下是获取CALL-ID的示例代码:
```c
osip_message_t *response; // 收到的200 OK响应消息
char *call_id;
// 解析起始行,确保是响应消息,并且是INVITE请求的响应
if (osip_message_get_status_code(response) == 200 &&
osip_message_get_type(response) == SIP_RESPONSE &&
osip_message_get_method(osip_transaction_get_original_request(osip_transaction)) == SIP_INVITE) {
// 获取CALL-ID
call_id = osip_strdup(osip_message_get_call_id(response)->number);
}
```
请注意,在实际应用中,需要对获取CALL-ID的过程进行错误处理和异常处理。
阅读全文