diff options
author | Mamadou DIOP <bossiel@yahoo.fr> | 2015-08-17 01:56:35 +0200 |
---|---|---|
committer | Mamadou DIOP <bossiel@yahoo.fr> | 2015-08-17 01:56:35 +0200 |
commit | 631fffee8a28b1bec5ed1f1d26a20e0135967f99 (patch) | |
tree | 74afe3bf3efe15aa82bcd0272b2b0f4d48c2d837 /tinyDEMO/cmd.h | |
parent | 7908865936604036e6f200f1b5e069f8752f3a3a (diff) | |
download | doubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.zip doubango-631fffee8a28b1bec5ed1f1d26a20e0135967f99.tar.gz |
-
Diffstat (limited to 'tinyDEMO/cmd.h')
-rw-r--r-- | tinyDEMO/cmd.h | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/tinyDEMO/cmd.h b/tinyDEMO/cmd.h new file mode 100644 index 0000000..6c544ad --- /dev/null +++ b/tinyDEMO/cmd.h @@ -0,0 +1,149 @@ +/* +* 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) + +const tsk_object_def_t *opt_def_t; +const tsk_object_def_t *cmd_def_t; + +_END_DECLS + +#endif /* TINYDEMO_CMD_H */ |