Date: 201602
Local time of day: 1201-1800
Location: NCT.TRACON, CA
Flight conditions: VMC
Weather elements / visibility: 50
Light: Daylight
Aircraft: Small Aircraft
Operator: Personal
Operating under: Part 91
Flight plan: VFR
Mission: Photo Shoot / Video
Flight phase: Cruise
Airspace: Class B NCT
Reporter organization: Contracted Service
Reporter function: Pilot Flying; Single Pilot
Reporter qualification: Flight Crew Commercial; Flight Crew Flight Instructor; Flight Crew Instrument; Flight Crew Multiengine
Human factors: Communication Breakdown; Confusion; Situational Awareness
Anomaly: Airspace Violation All Types; Deviation / Discrepancy - Procedural FAR; Deviation / Discrepancy - Procedural Published Material / Policy
Detector: Person Flight Crew
When detected: In-flight
Result: Air Traffic Control Issued Advisory / Alert; Air Traffic Control Issued New Clearance; Air Traffic Control Provided Assistance; Air Traffic Control Separated Traffic; Flight Crew FLC complied w / Automation / Advisory; Flight Crew Requested ATC Assistance / Clarification
Contributing factors: Airspace Structure; Human Factors; Procedure; Chart Or Publication
Primary problem: Procedure

Narrative: We had a photo assignment for 6 lines of photos. Certain altitudes must be flown due to customer need and camera settings. Since this is near the Final approach course for an airport our office made several attempts to discuss with the Tower contact but could only leave messages. Same for TRACON; and we gave an approximate time as we were told last month that time is less busy than others. I contacted TRACON in flight and made request for photo work.During this time we were handed off multiple times and I always restated the target of 1;800 feet over my photo mission target (In retrospect I should have been also stating 'inside the Class Bravo'). As we approached closer we were handed off to a tower; then to TRACON; then to another tower; then back to TRACON. Early in the process we were cleared to make the approach but I do not recall hearing 'cleared into Class Bravo'. We lined up for the southernmost set of exposures and was told to inform them when on location. Then I was told that we were in Class Bravo airspace....which conflicted with earlier clearance and asked to turn around which we did. Then we were handed over to Tower again and then back to TRACON. The next TRACON controller was much more explicit about entering Class Bravo airspace and cleared us. We held/delayed occasionally and we worked together well; completing 3/4 or so of the photos; we would delay and the controller would work us in between approaches.Then another controller came on board and he initially said no to our request but once he better understood what we were doing he cleared us and also was very clear about Class Bravo clearance etc.In general; the controllers are super busy at many times and communicate nonstop. We could all have been more clear reference Class Bravo clearances. My concern is that being cleared to a location and altitude initially may not have had a Class Bravo clearance. I'm also not sure if I need a Class Bravo clearance for every individual run (as we flew in and out of the Bravo five times). Usually around Class Bravo I ask specifically for clearance; and then we go through it and are done; but repeatedly going in and out during this photo mission was a different situation and unsure what the controllers prefer and legalities are.It would have helped if we could have reached someone to discuss before the flight. I can say that overall ATC was very accommodating and we all worked together in a very professional manner. My main concern is whether at some point during that flight I may have entered Class Bravo without a proper clearance. There was no questioning or phone numbers given during of post flight; so I assume things are OK; but I will have to research proper procedures with ATC before doing a flight like this again....




Synopsis: A pilot on a photo mission talking to ATC felt they might have entered Class B Airspace without ATC clearing them into it.