Comments (6)
I could definitely use some advice/help on how to implement/integrate logging into the framework better. You are right, there are spots where I would like to generate a log message from within the framework and right now just using console, which I don't love. Here is another one:
drachtio-srf/lib/drachtio-agent.js
Line 220 in 1629d63
I don't think we can always guarantee that there is a request object in scope, though, so I am not sure about that. Emitting an error on the srf object sounds a bit better, though at lower levels of the stack are not aware of the higher level abstraction that is the srf. Definitely open to suggestions.....
from drachtio-srf.
@davehorton so, my immediate reaction would be that any error that's related to code that the implementor (me) has written, should be obtainable through an event on on the SRF instance.
So all errors in middleware, srf.invite
and so on, should end up in srf.on('error')
- or whatever, I believe that event is already occupied by errors in communication for inbound mode.
Errors that sits at a lower level of abstraction should probably be fine to emit to console.error instead. From my standpoint as an implementor, it should be fine getting caught by whatever logging I've got attached to stderr.
The extensive use of promises can make this a bit annoying to implement though, but with a few strategically placed await statements it'll probably be manageable.
from drachtio-srf.
that sounds pretty reasonable. One thing I was wondering -- that initial link you gave, an error of that kind should have called your error middleware, if you had any, via this line:
Line 197 in 1629d63
was that not happening?
from drachtio-srf.
I'm not sure what error middleware is?
from drachtio-srf.
it is middleware with 4 args instead of 3, one being an error argument. It is called only when an error is barfed somewhere down the stack:
srf.use((err, req, res, next) => ..
from drachtio-srf.
Oh I didn't know that! That takes care of a great deal of the error handling then! I'll just try that out.
from drachtio-srf.
Related Issues (20)
- PRACK interoperability not working HOT 3
- B2BUA 200 response missing SDP HOT 4
- OPTIONS request that causes a problem HOT 4
- Upgrade UUID to version 8 to avoid warnings for 3.4.0 HOT 2
- Broken links in https://drachtio.org/api HOT 1
- 407 response with re-Invite HOT 1
- ON Bye message in UAC/UAS , URl is replaced as placeholder and i am not getting bye message on the client HOT 1
- How can Srf client know about the loss of TCP/WS connection from SIP client to Drachtio server HOT 26
- how to place a call with asterisk HOT 3
- How to set SIP transport for createUac HOT 8
- SipError: Sip non-success response: 408 HOT 4
- createB2BUA can forward UAS Cancel request to UAC Cancel request.
- Can I get the headers of received CANCEL? HOT 17
- Do both Drachtio and SRF support SIP REPLACE?
- Public IP in Contact Header in #createUAS HOT 2
- Request-Line change request in SRF HOT 3
- Server error: unable to find dialog for dialog id provided HOT 1
- Getting periodic 486 and 503 errors HOT 3
- Srf types not updated correctly sometime after 4.5.23 HOT 3
- Capture all SIP messages in SIP Dialogs HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from drachtio-srf.