134 lines
3.1 KiB
C
134 lines
3.1 KiB
C
/*
|
|
* This file is part of the Sofia-SIP package
|
|
*
|
|
* Copyright (C) 2008 Nokia Corporation.
|
|
*
|
|
* Contact: Pekka Pessi <pekka.pessi@nokia.com>
|
|
*
|
|
* 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., 51 Franklin St, Fifth Floor, Boston, MA
|
|
* 02110-1301 USA
|
|
*/
|
|
|
|
#ifndef CHECK_NTA_H
|
|
#define CHECK_NTA_H
|
|
|
|
#include <s2check.h>
|
|
|
|
#include <sofia-sip/sip.h>
|
|
#include <sofia-sip/tport.h>
|
|
#include <sofia-sip/nta.h>
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include "s2sip.h"
|
|
|
|
extern struct s2nta {
|
|
su_home_t home[1];
|
|
|
|
nta_agent_t *nta;
|
|
|
|
su_root_t *root;
|
|
|
|
nta_leg_t *default_leg;
|
|
|
|
struct event {
|
|
struct event *next, **prev;
|
|
|
|
nta_agent_magic_t *amagic;
|
|
|
|
nta_outgoing_magic_t *omagic;
|
|
nta_outgoing_t *orq;
|
|
|
|
nta_leg_magic_t *lmagic;
|
|
nta_leg_t *leg;
|
|
|
|
nta_incoming_magic_t *imagic;
|
|
nta_incoming_t *irq;
|
|
|
|
sip_method_t method;
|
|
char const *method_name;
|
|
|
|
int status;
|
|
char const *phrase;
|
|
|
|
msg_t *msg;
|
|
sip_t *sip;
|
|
} *events;
|
|
} *s2;
|
|
|
|
struct event *s2_nta_remove_event(struct event *e);
|
|
void s2_nta_free_event(struct event *e);
|
|
void s2_nta_flush_events(void);
|
|
struct event *s2_nta_next_event(void);
|
|
|
|
enum wait_for {
|
|
wait_for_amagic = 1,
|
|
wait_for_omagic,
|
|
wait_for_orq,
|
|
wait_for_lmagic,
|
|
wait_for_leg,
|
|
wait_for_imagic,
|
|
wait_for_irq,
|
|
wait_for_method,
|
|
wait_for_method_name,
|
|
wait_for_status,
|
|
wait_for_phrase
|
|
};
|
|
|
|
struct event *s2_nta_vwait_for(enum wait_for,
|
|
void const *value,
|
|
va_list va);
|
|
|
|
struct event *s2_nta_wait_for(enum wait_for,
|
|
void const *value,
|
|
...);
|
|
|
|
int s2_nta_check_for(enum wait_for,
|
|
void const *value,
|
|
...);
|
|
|
|
int s2_nta_msg_callback(nta_agent_magic_t *magic,
|
|
nta_agent_t *nta,
|
|
msg_t *msg,
|
|
sip_t *sip);
|
|
int s2_nta_orq_callback(nta_outgoing_magic_t *magic,
|
|
nta_outgoing_t *orq,
|
|
sip_t const *sip);
|
|
int s2_nta_leg_callback(nta_leg_magic_t *magic,
|
|
nta_leg_t *leg,
|
|
nta_incoming_t *irq,
|
|
sip_t const *sip);
|
|
int s2_nta_irq_callback(nta_incoming_magic_t *magic,
|
|
nta_incoming_t *irq,
|
|
sip_t const *sip);
|
|
|
|
void s2_nta_setup_logs(int level);
|
|
void s2_nta_setup(char const *label,
|
|
char const * const *transports,
|
|
tag_type_t tag, tag_value_t value, ...);
|
|
|
|
nta_agent_t *s2_nta_agent_setup(url_string_t const *bind_url,
|
|
nta_message_f *callback,
|
|
nta_agent_magic_t *magic,
|
|
tag_type_t tag, tag_value_t value, ...);
|
|
void s2_nta_teardown(void);
|
|
|
|
TCase *check_nta_api_1_0(void);
|
|
TCase *check_nta_client_2_0(void);
|
|
TCase *check_nta_client_2_1(void);
|
|
TCase *check_nta_client_2_2(void);
|
|
|
|
#endif
|