From 3878032d803609e0cbd70c33fe0dced6613e1d01 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 13 Sep 2022 00:57:48 -0400 Subject: [PATCH] PLNK accepts connections Next up exension time --- Cargo.lock | 7 +++++++ Cargo.toml | 1 + examples/asterisk.conf | 19 +++++++++++++++++++ examples/pjsip.conf | 26 ++++++++++++++++++++++++++ examples/user.conf | 12 +++++------- src/lib.rs | 11 ++++++++++- 6 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 examples/asterisk.conf create mode 100644 examples/pjsip.conf diff --git a/Cargo.lock b/Cargo.lock index a081283..d41a344 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -198,6 +198,7 @@ version = "0.0.0" dependencies = [ "cfg-if 0.1.10", "console_error_panic_hook", + "md5", "serde", "serde_json", "worker", @@ -267,6 +268,12 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9376a4f0340565ad675d11fc1419227faf5f60cd7ac9cb2e7185a471f30af833" +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + [[package]] name = "memchr" version = "2.5.0" diff --git a/Cargo.toml b/Cargo.toml index 7865c78..f9386ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,7 @@ cfg-if = "0.1.2" worker = "0.0.9" serde_json = "1.0.67" serde = "1.0.144" +md5 = "0.7.0" # The `console_error_panic_hook` crate provides better debugging of panics by # logging them with `console.error`. This is great for development, but requires diff --git a/examples/asterisk.conf b/examples/asterisk.conf new file mode 100644 index 0000000..e1caed5 --- /dev/null +++ b/examples/asterisk.conf @@ -0,0 +1,19 @@ +[options] +; If we want to start Asterisk with a default verbosity for the verbose +; or debug logger channel types, then we use these settings (by default +; they are disabled). +verbose = 5 +debug = 2 + +; User and group to run asterisk as. NOTE: This will require changes to +; directory and device permissions. +runuser = gonk ; The user to run as. The default is root. +rungroup = gonk ; The group to run as. The default is root + +; Gonk settings +defaultlanguage = en +initcrypto = yes +timestamp = yes +autosystemname = yes +astctlowner = gonk +astctlgroup = gonk \ No newline at end of file diff --git a/examples/pjsip.conf b/examples/pjsip.conf new file mode 100644 index 0000000..c37b873 --- /dev/null +++ b/examples/pjsip.conf @@ -0,0 +1,26 @@ +[global] +type=global +default_realm=gonk +default_from_user=gonk + +[transport-udp] +type=transport +protocol=udp +bind=0.0.0.0 +local_net=192.168.0.0/16 +local_net=10.0.0.0/8 +local_net=172.16.0.0/12 +local_net=127.0.0.1/32 +external_media_address=##EXTERNAL_IP## +external_signaling_address=##EXTERNAL_IP## + +[transport-tcp] +type=transport +protocol=tcp +bind=0.0.0.0 +local_net=192.168.0.0/16 +local_net=10.0.0.0/8 +local_net=172.16.0.0/12 +local_net=127.0.0.1/32 +external_media_address=##EXTERNAL_IP## +external_signaling_address=##EXTERNAL_IP## diff --git a/examples/user.conf b/examples/user.conf index 462a650..4001ee1 100644 --- a/examples/user.conf +++ b/examples/user.conf @@ -1,4 +1,4 @@ -[##EXT##] +[##CALL##] type=endpoint auth=##EXT## aors=##EXT## @@ -14,14 +14,12 @@ rewrite_contact=yes rtp_symmetric=yes force_rport=yes -[##EXT##] +[##CALL##-auth] type=auth -auth_type=userpass -password=##CALL## -username=##PASS## +md5_cred=##MD5_CRED## -[##EXT##] +[##CALL##] type=aor -max_contacts=1 +max_contacts=10 mailboxes=##EXT##@default diff --git a/src/lib.rs b/src/lib.rs index 900cc39..d6352b3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,4 @@ +use md5; use serde; use worker::{kv::KvStore, *}; @@ -99,7 +100,15 @@ pub async fn main(req: Request, env: Env, _ctx: worker::Context) -> Result