forked from blak3r/yaai
-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO.txt
211 lines (133 loc) · 11.1 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
NOTE: this file is no longer the official TODO list.
I moved it to the wiki page: https://github.com/blak3r/yaai/wiki/Project-TODO-List
GO HERE:
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
https://github.com/blak3r/yaai/wiki/Project-TODO-List
I tend to use this file to temporarily put notes when i'm not already logged into github.
Documentation:
If you have a custom dial plan. You must do the following.
*There are a few regex's that must work.
* asterisk_expr is used for detecting if the channel or the destination (or both) are internal to the PBX. This is how we determine if it's an inbound call, outbound call or an internal to internal call.
-- The default should work out of the box assuming you need to match SIP/### Local/###@ or IAX
* Dial Command, in an originate command you set the Channel to the phone which will be the originator.
-- The default is SIP/### --- In the code the ### is replaced with the users extension, modify the asterisk-dialout-channel to something like Local/
* User Extension extraction, Finally we need to be able to extract the PBX extension which is being used for calls (inbound/outbound) so that we can assign the Call to the appropariate SugarCRM User.
-- Currently, there isn't a regular expression for this. There are a series of If/else statements that do this in asteriskLogger.
-- It first tries to see if SIP/### would work... if it doesn't, it then tries one that would match "Local/###@" so this should take care of it.
-- IF your calls aren't being associated with the proper contact... this is the likely problem (or you don't have a User with that extension already).
* To determine what call window popups should appear CallListener's db query (CTRL+F for $query) has a line which
checks to see if the channel matches either SIP/has a line which is like SIP/$extension in the DB Query... There isn't currently a config properly for this.
So, if call windows aren't popping up this might be a good place to look.
Versions Developed with:
* Asterisk 1.6.2.22 built by root on a i686 running Linux on 2011-12-29 01:26:29 UTC (we compiled asterisk b/c DTMF wasn't working).
*
==[ Important ]================
* ***On Inbound calls (such as Ray Lewis 9:56am on 10/16/2012) we have lots of failed calls. Presumably 1 for my cell phone etc...
* DONE - Multiple Matching Contact Handling, provide user with option to pick who it is? At the very least need to fix outbound calling
- Todo this, we need to add a new action to controller.php and add a new column to asteriskLog. The action=setContactId will pass a contact id which will then get written to the asteriskLog db table. Then, in asteriskLogger we check if the contactId is already set before trying to make the relation.
* DONE - Need to do custom code for Contacts Subpanels.. (doesn't show magic call icon there).
* Update language files for german and whatever the other language is.
==[ Minor Bugs ]================
* $sugar_config['asterisk_dialin_ext_match'] = 'Local\/(?:.*?)(\d\d\d?\d?\d?)@'; -- Make this take 3-11 digits. If longer then say 5 characters we need to implement a method to look at users's mobile phones.
==[ Potential Enhancements]=========================
* Better handling for answering on mobile phone. (currently a chat box still appears).
* Would be cool if it could give you voicemail also.
==[ Configuration Changes Needed]===
Add opencnam enabled / apikey
$rgCellRingRegex = "/^Local\/\d{7,10}/i";// TODO make this a configuration option.... This detects in a RG when an outside line is called (usually for a cellphone)... for some reason the cell shows up as the Channel (aka the source)... We detect this by finding a number thats at least 7-10 characters long..
Add option to save short calls (ie inbound calls that weren't answered) as failed (which shows up in activities) or Held.
* Need configurable Channel detection in order to assign calls to users when they answer on cell phones.
* (DONE) Need to add dialin prefix (its in sugarListener)
* (DONE) Need to make config option for the dialout. Currently hardcoded to /SIP (in my case i need to do the Local/##@sugarsip/n... see CreateCall... for some reason I don't need it in callListener (presumably b/c it's already SIP at that point).
* (DONE) Parametize the channel --> assigned user id detection, search for Local/LC-52@from-internal-4bbbb in asteriskLogger.
* (DONE) Add max subject length to controller.php (also variables for IBC, OBC);
==[MISC]========
* Verify Asterisk Logger fix to relogin to AMI works if asterisk goes down.
* (DONE) Currently language is hardcoded in sugarListener.php
* (DONE) AsteriskLogger -> findUser method --> add to query something to detect that user is "Active" so you don't get past employees matchin.
* (Performance) -- Reduce querying in callListener... Perhaps set Contact only in asteriskLogger? -- You'd loose it getting updated if person adds afterwards.
* (Performance) -- Index the timestampCall column?
* (Performance) -- Perhaps create a asterisk_log_archive table and copy entries to it after 1 week to cut down on records that have to be scanned.
* (Performance) -- Ajax calls to callLister continue even after user's session ends (like when you login from a diff browser). Need to somehow stop that.
* Process the AMI response in CallCreate / controller and display errors when they fail in javascript.
* If the database cannot be accessed, this is the error message you get
! FATAL: Cannot find login credentials for user admin
which is a bit misleading... as it makes you think soap is the problem
==[INSTALLER]=========
* (DONE) The previous versions added some custom code around every phone number.
'customCode' => '<span class="asterisk_phoneNumber" id="">{$PHONE_OFFICE}</span> ',
To all the phone number fields. I just changed the jquery search query to look for ".phone" instead. Not sure if older versions used the same css selector.
* Fields are added to User, but user needs to go into studio to then add them to template. (This is fine in 6.4 since Users are now "Studioable" but prior it wasn't... so need to have some other way of adding the fields for older versions.)
* Running installer will drop any existing asterisk_log database!
* Create logic hook in manifest See: http://developers.sugarcrm.com/wordpress/2010/05/11/upgrade-safe-user-manager-upgrades/
==============================[ CHANGELOG ]================================
3/31/2012
* Extracted code to find the assigned user based on extension to methods.
* Fixed couple regex bugs.
* Fixed Internal call detection when using custom dial plans ( Local/ )
* Updated the callListener query to show the correct call
* Now, only 1 call shows up for each inbound call.
* Rudimentary Transfer functionality implemented.
3/26/2012
* (DONE) Z-index issue with chatbox and buttons on pagination.
3/25/2012
* (DONE) added asterisk_listener_poll_rate
* Make memoSave.php secure
- (DONE) sanitize POST data (or will the bean do this for me)?
- (DONE) Make it so only an authenticated user can access
3/20/2012
* (DONE) Switch findUserByAsteriskExtension to use a DB Query instead of soap. Soap query worked like 1/10 times. Unable to determine when it'd work.
* (DONE) Added dialinPrefix to Administrative config.
3/15/2012
* (DONE/NEEDS VERIFICATION) Fix call assignment, Channel = Local/LC-52@from-internal-4bbbb
* (DONE) Match numbers like 410-215-249701
* (DONE) Change the Save button to close also.
3/14/2012
* (DONE) With SUGARSIP dial commands inbound vs. outbound not detected correctly.
* Fixed bug where deleted contacts were returned.
3/7/2012
* DONE - Add to installer scripts the thing that creates the end points
5/19 - 6/1
* DONE - Fixed bug where focus was lost when there were multiple text boxes.
* DONE - On new call, minimize the other call boxes.
* DONE - If chatbox is closed in one browser window, close the ones in the others as well (unless notes are entered).
* DONE - Make control+enter save & close
* DONE - Refactor asterisk logger to not relogin to soap each time ami fails.
Wed 5/19
* When you mouse over click to dial icon it now displays a tooltip with your extension number
* Updated callListener and asteriskLogger to allow for different inbound prefix.
* DONE - Pass direction in to saveMemo action
* DONE - Fix call subject when set by
* DONE - Multiple Call support
* DONE - Adjust the callListener query to limit calls older then 1 hour, and have some states for already saved calls. Calls should stay visible until they are saved.
* (DONE) Make Pro Version compatible. Do what needs to be done to allow it to work with additional security in place on PRO/ENT versions.
-- I think this is something with /custom/include/MVC/Controller/entry_point_registry.php
* DONE Adjust the returned html from callListener.html (Remove buttons etc.)
* DONE - Tweak subject of call to indicate whether notes are included or not... perhaps also allow subject customization input box.
* DONE - Change the title of chatboxes to something other then the asterisk id.
* DONE - (TEST IN OTHER BROWSERS THOUGH) Fix CSS issue where scrollbars aren't present.
* DONE - Make the UI state remember whether or not it was minimized across page loads.
* DONE - Clicking anywhere on chat box title area should minimize/maximize. (instead of just the
* DONE - Update the state of chatboxes who are no longer "active". (either close them all... or update the state on them at least).
* (I THINK THIS IS ALREADY DONE... JUST SUDDENLY STARTED WORKING IT SEEMS LIKE...) Add an entry to calls_contacts if it should appear in the history.
* DONE - Add instructions about how notes typed in will get associated with the call... (perhaps an explicit save button instead of just new lines)..
* DONE - Test title changes... what happens with very long contact names in title, or when no name is present at all.
-- It wraps... when very long... which is okay but truncation would probably be better.
* Does the fact that they look like chat windows going to cause users to be confused that it's a call pop?
* DONE - Add label for DuRATION in ShowCall.html
* DONE - merge new asteriskLogger which reconnects on SOAP failures.
Caller ID Integration...
-- Use existing caller id script with SIP dial command or move everyone over to SUGARSIP and then modify the hardcoded locations where "SIP/" is found in code.
Documentation Notes:
* Dialout prefix --- also affects the dial in prefix... Need a seperate one for each. I hardcoded dialinprefix to "+1" in callListener.php
----[ call logger crash notes ]===================
[2011-05-23 13:39:13] # Event loop terminated, attempting to login again
# Callout prefix is [1]
# (Config processed)
! Error with socketError connecting 10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.