📄 sdp_accessor.c
字号:
/* The oSIP library implements the Session Initiation Protocol (SIP -rfc3261-) Copyright (C) 2001,2002,2003,2004,2005,2006,2007 Aymeric MOIZARD jack@atosc.org This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*/#include <osipparser2/osip_const.h>#include <osipparser2/osip_port.h>#include <osipparser2/sdp_message.h>#include <stdio.h>#include <stdlib.h>intsdp_message_v_version_set (sdp_message_t * sdp, char *v_version){ if (sdp == NULL) return -1; sdp->v_version = v_version; return 0;}char *sdp_message_v_version_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->v_version;}intsdp_message_o_origin_set (sdp_message_t * sdp, char *username, char *sess_id, char *sess_version, char *nettype, char *addrtype, char *addr){ if (sdp == NULL) return -1; sdp->o_username = username; sdp->o_sess_id = sess_id; sdp->o_sess_version = sess_version; sdp->o_nettype = nettype; sdp->o_addrtype = addrtype; sdp->o_addr = addr; return 0;}char *sdp_message_o_username_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_username;}char *sdp_message_o_sess_id_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_sess_id;}char *sdp_message_o_sess_version_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_sess_version;}char *sdp_message_o_nettype_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_nettype;}char *sdp_message_o_addrtype_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_addrtype;}char *sdp_message_o_addr_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->o_addr;}intsdp_message_s_name_set (sdp_message_t * sdp, char *name){ if (sdp == NULL) return -1; sdp->s_name = name; return 0;}char *sdp_message_s_name_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->s_name;}intsdp_message_i_info_set (sdp_message_t * sdp, int pos_media, char *info){ sdp_media_t *med; if (sdp == NULL) return -1; if (pos_media == -1) { sdp->i_info = info; return 0; } med = osip_list_get (&sdp->m_medias, pos_media); if (med == NULL) return -1; med->i_info = info; return 0;}char *sdp_message_i_info_get (sdp_message_t * sdp, int pos_media){ sdp_media_t *med; if (sdp == NULL) return NULL; if (pos_media == -1) { return sdp->i_info; } med = osip_list_get (&sdp->m_medias, pos_media); if (med == NULL) return NULL; return med->i_info;}intsdp_message_u_uri_set (sdp_message_t * sdp, char *uri){ if (sdp == NULL) return -1; sdp->u_uri = uri; return 0;}char *sdp_message_u_uri_get (sdp_message_t * sdp){ if (sdp == NULL) return NULL; return sdp->u_uri;}intsdp_message_e_email_add (sdp_message_t * sdp, char *email){ if (sdp == NULL) return -1; osip_list_add (&sdp->e_emails, email, -1); return 0;}char *sdp_message_e_email_get (sdp_message_t * sdp, int pos){ if (sdp == NULL) return NULL; if (osip_list_size (&sdp->e_emails) > pos) return (char *) osip_list_get (&sdp->e_emails, pos); return NULL;}intsdp_message_p_phone_add (sdp_message_t * sdp, char *phone){ if (sdp == NULL) return -1; osip_list_add (&sdp->p_phones, phone, -1); return 0;}char *sdp_message_p_phone_get (sdp_message_t * sdp, int pos){ if (sdp == NULL) return NULL; if (osip_list_size (&sdp->p_phones) > pos) return (char *) osip_list_get (&sdp->p_phones, pos); return NULL;}intsdp_message_c_connection_add (sdp_message_t * sdp, int pos_media, char *nettype, char *addrtype, char *addr, char *addr_multicast_ttl, char *addr_multicast_int){ int i; sdp_media_t *med; sdp_connection_t *conn; if (sdp == NULL) return -1; if ((pos_media != -1) && (osip_list_size (&sdp->m_medias) < pos_media + 1)) return -1; i = sdp_connection_init (&conn); if (i != 0) return -1; conn->c_nettype = nettype; conn->c_addrtype = addrtype; conn->c_addr = addr; conn->c_addr_multicast_ttl = addr_multicast_ttl; conn->c_addr_multicast_int = addr_multicast_int; if (pos_media == -1) { sdp->c_connection = conn; return 0; } med = (sdp_media_t *) osip_list_get (&sdp->m_medias, pos_media); osip_list_add (&med->c_connections, conn, -1); return 0;}/* this method should be internal only... */sdp_connection_t *sdp_message_connection_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_media_t *med; if (sdp == NULL) return NULL; if (pos_media == -1) /* pos is useless in this case: 1 global "c=" is allowed */ return sdp->c_connection; med = (sdp_media_t *) osip_list_get (&sdp->m_medias, pos_media); if (med == NULL) return NULL; return (sdp_connection_t *) osip_list_get (&med->c_connections, pos);}char *sdp_message_c_nettype_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_connection_t *conn = sdp_message_connection_get (sdp, pos_media, pos); if (conn == NULL) return NULL; return conn->c_nettype;}char *sdp_message_c_addrtype_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_connection_t *conn = sdp_message_connection_get (sdp, pos_media, pos); if (conn == NULL) return NULL; return conn->c_addrtype;}char *sdp_message_c_addr_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_connection_t *conn = sdp_message_connection_get (sdp, pos_media, pos); if (conn == NULL) return NULL; return conn->c_addr;}char *sdp_message_c_addr_multicast_ttl_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_connection_t *conn = sdp_message_connection_get (sdp, pos_media, pos); if (conn == NULL) return NULL; return conn->c_addr_multicast_ttl;}char *sdp_message_c_addr_multicast_int_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_connection_t *conn = sdp_message_connection_get (sdp, pos_media, pos); if (conn == NULL) return NULL; return conn->c_addr_multicast_int;}intsdp_message_b_bandwidth_add (sdp_message_t * sdp, int pos_media, char *bwtype, char *bandwidth){ int i; sdp_media_t *med; sdp_bandwidth_t *band; if (sdp == NULL) return -1; if ((pos_media != -1) && (osip_list_size (&sdp->m_medias) < pos_media + 1)) return -1; i = sdp_bandwidth_init (&band); if (i != 0) return -1; band->b_bwtype = bwtype; band->b_bandwidth = bandwidth; if (pos_media == -1) { osip_list_add (&sdp->b_bandwidths, band, -1); return 0; } med = (sdp_media_t *) osip_list_get (&sdp->m_medias, pos_media); osip_list_add (&med->b_bandwidths, band, -1); return 0;}sdp_bandwidth_t *sdp_message_bandwidth_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_media_t *med; if (sdp == NULL) return NULL; if (pos_media == -1) return (sdp_bandwidth_t *) osip_list_get (&sdp->b_bandwidths, pos); med = (sdp_media_t *) osip_list_get (&sdp->m_medias, pos_media); if (med == NULL) return NULL; return (sdp_bandwidth_t *) osip_list_get (&med->b_bandwidths, pos);}char *sdp_message_b_bwtype_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_bandwidth_t *band = sdp_message_bandwidth_get (sdp, pos_media, pos); if (band == NULL) return NULL; return band->b_bwtype;}char *sdp_message_b_bandwidth_get (sdp_message_t * sdp, int pos_media, int pos){ sdp_bandwidth_t *band = sdp_message_bandwidth_get (sdp, pos_media, pos); if (band == NULL) return NULL; return band->b_bandwidth;}intsdp_message_t_time_descr_add (sdp_message_t * sdp, char *start, char *stop){ int i; sdp_time_descr_t *td; if (sdp == NULL) return -1; i = sdp_time_descr_init (&td); if (i != 0) return -1; td->t_start_time = start; td->t_stop_time = stop; osip_list_add (&sdp->t_descrs, td, -1); return 0;}char *sdp_message_t_start_time_get (sdp_message_t * sdp, int pos_td){ sdp_time_descr_t *td; if (sdp == NULL) return NULL; td = (sdp_time_descr_t *) osip_list_get (&sdp->t_descrs, pos_td); if (td == NULL) return NULL; return td->t_start_time;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -