Compare commits

...

1 Commits

Author SHA1 Message Date
98bd9175eb call transfer * make changes to spring application API 2025-04-30 12:57:48 +05:30
8 changed files with 315 additions and 1 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -783,3 +783,12 @@ switch => Realtime/prebridge@extensions
[add-third-user] [add-third-user]
switch => Realtime/add-third-user@extensions switch => Realtime/add-third-user@extensions
[after-answer]
switch => Realtime/after-answer@extensions
[continuecall]
switch => Realtime/continuecall@extensions
[transfercall]
switch => Realtime/transfercall@extensions

View File

@ -0,0 +1,285 @@
USE asterisk_db;
CREATE TABLE ps_endpoints (
id VARCHAR(40) NOT NULL PRIMARY KEY,
transport VARCHAR(40) NULL,
aors VARCHAR(200) NULL UNIQUE,
auth VARCHAR(40) NULL UNIQUE,
context VARCHAR(40) NULL,
disallow VARCHAR(200) NULL,
allow VARCHAR(200) NULL,
direct_media VARCHAR(40) NULL,
connected_line_method VARCHAR(40) NULL,
callerid VARCHAR(40) NULL,
dtmf_mode VARCHAR(40) NULL
);
CREATE TABLE ps_auths (
id VARCHAR(40) NOT NULL PRIMARY KEY,
auth_type VARCHAR(40) NOT NULL,
username VARCHAR(40) NULL UNIQUE,
password VARCHAR(40) NULL,
md5_cred VARCHAR(40) NULL,
realm VARCHAR(40) NULL
);
CREATE TABLE ps_aors (
id VARCHAR(40) NOT NULL PRIMARY KEY,
max_contacts INTEGER NULL
);
CREATE TABLE extensions_table (
id INT AUTO_INCREMENT PRIMARY KEY,
context VARCHAR(50) NOT NULL,
exten VARCHAR(50) NOT NULL,
priority INT NOT NULL,
app VARCHAR(50) NOT NULL,
appdata VARCHAR(100)
);
INSERT INTO ps_endpoints (id, transport, aors, auth, context, disallow, allow)
VALUES ('1001', 'transport-udp', '1001', '1001', 'default', 'all', 'ulaw,alaw');
INSERT INTO ps_auths (id, auth_type, username, password)
VALUES ('1001', 'userpass', '1001', '12345');
INSERT INTO ps_aors (id, max_contacts)
VALUES ('1001', 1);
INSERT INTO ps_endpoints (id, transport, aors, auth, context, disallow, allow, direct_media)
VALUES ('1002', 'transport-udp', '1002', '1002', 'default', 'all', 'ulaw,alaw', 'no');
INSERT INTO ps_auths (id, auth_type, username, password)
VALUES ('1002', 'userpass', '1002', '12345');
INSERT INTO ps_aors (id, max_contacts)
VALUES ('1002', 2);
INSERT INTO ps_endpoints (id, transport, aors, auth, context, disallow, allow, direct_media)
VALUES ('1003', 'transport-udp', '1003', '1003', 'default', 'all', 'ulaw,alaw', 'no');
INSERT INTO ps_auths (id, auth_type, username, password)
VALUES ('1003', 'userpass', '1003', '12345');
INSERT INTO ps_aors (id, max_contacts)
VALUES ('1003', 2);
INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 1, 'Dial', 'PJSIP/1001,20'),
('default', '1002', 1, 'Dial', 'PJSIP/1002,20'),
('default', '1003', 1, 'Dial', 'PJSIP/1003,20');
/*INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 1, 'MixMonitor', '1001-${UNIQUEID}.wav,b'),
('default', '1001', 2, 'Dial', 'PJSIP/1001,20'),
('default', '1002', 1, 'MixMonitor', '1002-${UNIQUEID}.wav,b'),
('default', '1002', 2, 'Dial', 'PJSIP/1002,20'),
('default', '1003', 1, 'MixMonitor', '1003-${UNIQUEID}.wav,b'),
('default', '1003', 2, 'Dial', 'PJSIP/1003,20');*/
UPDATE extensions_table SET appdata = CONCAT(exten, '-${UNIQUEID}.wav,b') WHERE app = 'MixMonitor';
-- call forwarding for 1001
-- Call Forwarding if Busy
INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 3, 'GotoIf', '${DIALSTATUS}=BUSY?default,1002,1');
-- Call Forwarding if Unavailable
INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 4, 'GotoIf', '${DIALSTATUS}=CHANUNAVAIL?default,1002,1');
-- Call Forwarding if No Answer
INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 5, 'GotoIf', '${DIALSTATUS}=NOANSWER?default,1002,1');
--
-- music on hold
USE asterisk_db;
-- CREATE TABLE moh_classes (
-- name VARCHAR(40) PRIMARY KEY,
-- mode VARCHAR(20) NOT NULL,
-- directory VARCHAR(255),
-- application VARCHAR(255),
-- digit INTEGER DEFAULT NULL,
-- sort VARCHAR(10) DEFAULT 'random'
-- );
--
-- INSERT INTO moh_classes (name, mode, directory, sort)
-- VALUES
-- ('default', 'files', '/etc/asterisk/moh', 'random');
--
-- SELECT * FROM moh_classes;
--
-- DROP TABLE `moh_classes`;
INSERT INTO extensions_table (context, exten, priority, app, appdata)
VALUES
('default', '1001', 20, 'MusicOnHold', 'default'),
('default', '1002', 20, 'MusicOnHold', 'default'),
('default', '1003', 20, 'MusicOnHold', 'default');
UPDATE extensions_table
SET appdata = CONCAT(appdata, ',m(default)')
WHERE app = 'Dial';
-- music on hold end
-- update the dial plan
UPDATE extensions_table
SET appdata = 'PJSIP/1001,20,g'
WHERE exten = '1001' AND app = 'Dial';
-- g here ensures it captures the DIALSTATUS even after the call ends
ALTER TABLE `ps_endpoints` ADD mohsuggest VARCHAR(40);
ALTER TABLE `ps_endpoints` ADD mailboxes VARCHAR(255);
UPDATE ps_endpoints SET mohsuggest = 'default';
UPDATE ps_endpoints SET direct_media = 'no';
SELECT * FROM `ps_endpoints`;
SELECT * FROM extensions_table;
-- DROP TABLE `extensions_table`;
SELECT * FROM extensions_table WHERE context='default';
SHOW TABLES;
#
-- ------------ call conferencing start ----------------------------------------------
-- Static Conference Setup
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(1, 'default', '100', 1, 'Answer', ''),
(2, 'default', '100', 2, 'ConfBridge', '100'),
(3, 'default', '100', 3, 'Hangup', '');
-- Pre-Bridge Subroutine
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(91, 'prebridge', 's', 1, 'NoOp', '*** Pre-Bridge Subroutine ***'),
(92, 'prebridge', 's', 2, 'Set', 'SHARED(lastcaller)=${CALLERCHAN}'),
(93, 'prebridge', 's', 3, 'Set', 'SHARED(lastcallee)=${EXTEN}'),
(94, 'prebridge', 's', 4, 'Return', '');
-- Transfer to ConfBridge Logic
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(95, 'transfer-to-conf', 's', 1, 'NoOp', '*** Transferring to ConfBridge ***'),
(96, 'transfer-to-conf', 's', 2, 'Set', 'CONFROOM=9000'),
(97, 'transfer-to-conf', 's', 3, 'Originate', 'Local/9100@default,,exten,default,9100,1'),
(98, 'transfer-to-conf', 's', 4, 'Originate', 'Local/9100@default,,exten,default,9100,1'),
(99, 'transfer-to-conf', 's', 5, 'Wait', '5'),
(100, 'transfer-to-conf', 's', 6, 'Return', '');
-- Add Third User Logic
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(101, 'add-third-user', 's', 1, 'NoOp', '*** Adding 3rd User to Conference ***'),
(102, 'add-third-user', 's', 2, 'Read', 'THIRDPARTY,please-enter-extension,4'),
(103, 'add-third-user', 's', 3, 'NoOp', 'Inviting ${THIRDPARTY} to join conf'),
(104, 'add-third-user', 's', 4, 'Originate', 'PJSIP/${THIRDPARTY},,exten,default,9100,1'),
(105, 'add-third-user', 's', 5, 'Return', '');
-- ConfBridge Join Point (Room 9000)
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(106, 'default', '9100', 1, 'NoOp', '*** Joining ConfBridge Room 9000 ***'),
(107, 'default', '9100', 2, 'ConfBridge', '9000'),
(108, 'default', '9100', 3, 'Hangup', '');
-- Dynamic Dialplan for All 1XXX Extensions (Voicemail) --
INSERT INTO extensions_table (id, context, exten, priority, app, appdata) VALUES
(135, 'default', '_1XXX', 1, 'NoOp', 'Calling dynamic extension ${EXTEN}'),
(136, 'default', '_1XXX', 2, 'Dial', 'PJSIP/${EXTEN},20'),
(137, 'default', '_1XXX', 3, 'VoiceMail', '${EXTEN}@default,u');
-- The above contains content for potential dynamic conferencing as well for future use --
--------- call conferencing end -------------------------------------------------------------
--------- queue members ---------------------------------
CREATE TABLE queue_members (
id INT PRIMARY KEY,
queue_id INT,
interface VARCHAR(255),
penalty INT DEFAULT 0,
member_name VARCHAR(255),
state_interface VARCHAR(255),
queue_name VARCHAR(255),
uniqueid VARCHAR(20)
);
INSERT INTO queue_members (id, queue_id, interface, penalty, member_name, state_interface, queue_name, uniqueid) VALUES
(1, 1, 'PJSIP/1001', 0, 'Agent 1001', 'Agent:1001', 'waiting-queue', '001'),
(2, 2, 'PJSIP/1002', 0, 'Agent 1002', 'Agent:1002', 'waiting-queue', '002'),
(3, 3, 'PJSIP/1003', 0, 'Agent 1003', 'Agent:1003', 'waiting-queue', '003');
------------ queue members end -----------------------
------------- queues ---------------------------------
CREATE TABLE queues (
name VARCHAR(100) PRIMARY KEY,
music_class VARCHAR(100),
strategy VARCHAR(50),
timeout INT,
retry INT,
wrapup_time INT,
max_len INT,
announce_frequency INT
);
INSERT INTO queues (name, music_class, strategy, timeout, retry, wrapup_time, max_len, announce_frequency) VALUES
('waiting-queue', 'default', 'ringall', 15, 5, 10, 0, 0);
-------------queues end ---------------------------------------
-------------voicemail users ----------------------------------
CREATE TABLE voicemail_users (
context VARCHAR(50),
mailbox VARCHAR(10) PRIMARY KEY,
password VARCHAR(20),
fullname VARCHAR(100),
email VARCHAR(100)
);
INSERT INTO voicemail_users (context, mailbox, password, fullname, email) VALUES
('default', '1001', '1234', 'User One', 'djangod56@gmail.com'),
('default', '1002', '1234', 'User Two', 'djangod56@gmail.com'),
('default', '1003', '1234', 'User Three', 'djangod56@gmail.com');
--------------- voicemail users end ------------------------------------------------

View File

@ -2,5 +2,5 @@
port=3308 port=3308
socket=/run/mysqld/mysqld.sock socket=/run/mysqld/mysqld.sock
user=healthcheck user=healthcheck
password="|%R46oxR7&$0,PJy.X_k^saOr{W&a`T password=.A:w"u<|ouV+SdH4yR~kyg2eHL;(Ga8/

View File

@ -0,0 +1,18 @@
;
; Message Information file
;
[message]
origmailbox=1003
context=default
macrocontext=
exten=1003
rdnis=unknown
priority=2
callerchan=PJSIP/1001-00000062
callerid=1001
origdate=Tue Apr 29 12:28:04 PM UTC 2025
origtime=1745929684
category=
msg_id=1745929684-00000000
flag=
duration=0