145 lines
4.2 KiB
C
Executable File
145 lines
4.2 KiB
C
Executable File
/*
|
|
* Copyright (C) 2009 Mamadou Diop.
|
|
*
|
|
* Contact: Mamadou Diop <diopmamadou(at)doubango.org>
|
|
*
|
|
* This file is part of Open Source Doubango Framework.
|
|
*
|
|
* DOUBANGO is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* DOUBANGO 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 General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with DOUBANGO.
|
|
*
|
|
*/
|
|
#if !defined(TINYDEMO_CMD_H)
|
|
#define TINYDEMO_CMD_H
|
|
|
|
#include "demo_config.h"
|
|
|
|
#include "tsk_params.h"
|
|
|
|
_BEGIN_DECLS
|
|
|
|
typedef enum cmd_type_e {
|
|
cmd_none,
|
|
|
|
cmd_audio, /* ++audio | ++a*/
|
|
cmd_audiovideo, /* ++audiovideo | ++av*/
|
|
cmd_config_session, /* ++config-session | ++css */
|
|
cmd_config_stack, /* ++config-stack | ++cst*/
|
|
cmd_dtmf, /*++dtmf*/
|
|
cmd_dump, /*++dump | ++d*/
|
|
cmd_ect, /*++ect*/
|
|
cmd_exit, /*++exit | ++e | ++quit | ++q*/
|
|
cmd_file, /* ++file | ++f*/
|
|
cmd_hangup, /* ++hangup | ++hu */
|
|
cmd_help, /* ++help | ++h */
|
|
cmd_hold, /* ++hold | ++ho */
|
|
cmd_large_message, /* ++large-message | ++lm */
|
|
cmd_message, /* ++message | ++m*/
|
|
cmd_options, /* ++options | ++opt*/
|
|
cmd_publish, /* ++publish | ++pub*/
|
|
cmd_register, /* ++register | ++reg */
|
|
cmd_resume, /* ++resume | ++res */
|
|
cmd_run, /* ++run | ++r*/
|
|
cmd_scenario, /* ++scenario | ++sn*/
|
|
cmd_sleep, /* ++sleep */
|
|
cmd_sms, /* ++sms */
|
|
cmd_stop, /* ++stop */
|
|
cmd_subscribe, /* ++subscribe | ++sub */
|
|
cmd_video, /* ++video | ++v */
|
|
}
|
|
cmd_type_t;
|
|
|
|
typedef enum opt_type_e {
|
|
opt_none,
|
|
|
|
opt_amf, /* --amf 0x85FF */
|
|
opt_caps, /* --caps +g.oma.sip-im or language=en,fr*/
|
|
opt_dhcpv4, /* --dhcpv4 */
|
|
opt_dhcpv6, /* --dhcpv6 */
|
|
opt_dname, /* --dname bob */
|
|
opt_dns_naptr, /* --dns-naptr */
|
|
opt_from, /* --from sip:alice@open-ims.test */
|
|
opt_event, /* --event 2 */
|
|
opt_expires, /* --expires|--xp 30 */
|
|
opt_header, /* --header Supported=norefersub */
|
|
opt_impi, /* --impi bob@open-ims.test */
|
|
opt_impu, /* --impu sip:bob@open-ims.test */
|
|
opt_ipv6, /* --ipv6 */
|
|
opt_local_ip, /* --local-ip 192.168.0.10 */
|
|
opt_local_port, /* --local-port 5060 */
|
|
opt_opid, /* --opid 0xA712F5D04B */
|
|
opt_password, /* --password|--pwd mysecret */
|
|
opt_path, /* --path /cygdrive/c/Projects/sample.cfg */
|
|
opt_payload, /* --payload|--pay hello world! */
|
|
opt_pcscf_ip, /* --pcscf-ip 192.168.0.13 */
|
|
opt_pcscf_port, /* --pcscf-port 5060 */
|
|
opt_pcscf_trans, /* --pcscf-trans udp */
|
|
opt_realm, /* --realm open-ims.test */
|
|
opt_sec, /* --sec 1800 */
|
|
opt_sid, /* --sid 1234 */
|
|
opt_sigcomp_id, /* --sigcomp-id urn:uuid:2e5fdc76-00be-4314-8202-1116fa82a473 */
|
|
opt_silent, /* --silent */
|
|
opt_smsc, /* --smsc +3315245856 */
|
|
opt_stun_ip, /* --stun-ip numb.viagenie.ca */
|
|
opt_stun_pwd, /* --stun-pwd mysecret */
|
|
opt_stun_port, /* --stun-port 3478 */
|
|
opt_stun_usr, /* --stun-usr bob@open-ims.test */
|
|
opt_to, /* --to sip:alice@open-ims.test */
|
|
}
|
|
opt_type_t;
|
|
|
|
typedef enum lv_e {
|
|
lv_none,
|
|
|
|
lv_stack, /* @@stack | @@st */
|
|
lv_session, /* @@session | @@ss */
|
|
lv_action /* @@action | @@request | @@a | @@r*/
|
|
}
|
|
lv_t;
|
|
|
|
typedef struct opt_s {
|
|
TSK_DECLARE_OBJECT;
|
|
|
|
opt_type_t type;
|
|
lv_t lv;
|
|
char* value;
|
|
}
|
|
opt_t;
|
|
typedef tsk_list_t opts_L_t;
|
|
|
|
typedef struct cmd_s {
|
|
TSK_DECLARE_OBJECT;
|
|
|
|
cmd_type_t type;
|
|
opts_L_t *opts;
|
|
char* sidparam;
|
|
}
|
|
cmd_t;
|
|
|
|
cmd_t* cmd_create(cmd_type_t );
|
|
#define cmd_create_null() cmd_create(cmd_none)
|
|
|
|
cmd_t* cmd_parse(const char* buffer, tsk_size_t size, tsk_bool_t *comment, tsk_params_L_t* params);
|
|
void cmd_print_help();
|
|
|
|
opt_t* opt_create(opt_type_t, lv_t, const char*);
|
|
const opt_t* opt_get_by_type(const opts_L_t* , opt_type_t);
|
|
#define opt_create_null() opt_create(opt_none, lv_none, tsk_null)
|
|
|
|
extern const tsk_object_def_t *opt_def_t;
|
|
extern const tsk_object_def_t *cmd_def_t;
|
|
|
|
_END_DECLS
|
|
|
|
#endif /* TINYDEMO_CMD_H */
|